www.givemejav.com
Open in
urlscan Pro
2606:4700:30::6812:2bf9
Public Scan
- Internal
- urlscan.io (IP)
- urlscan.io (Domain)
- Effective Hostname
- VirusTotal
- SecurityTrails
- crt.sh
- RiskIQ
- Submitted URL
- Google Safe Browsing
- Archive.org
- Effective URL Pivot
- Google Safe Browsing
- Archive.org
- Effective IP
- VirusTotal
- SecurityTrails
- RiskIQ
- Domaintools
- Censys
Add Verdict Report
http://givemejav.com/
Effective URL:
http://www.givemejav.com/
Submission: On November 21 via api (November 21st 2018, 3:33:04 am UTC) from US
Summary
This is the only time www.givemejav.com was scanned on urlscan.io!
urlscan.io Verdict: No classification
Domain & IP information
IP Address | AS Autonomous System | ||
---|---|---|---|
1 4 | 2606:4700:30:... 2606:4700:30::6812:2bf9 | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
3 | 209.197.3.15 209.197.3.15 | 20446 (HIGHWINDS3) (HIGHWINDS3 - Highwinds Network Group) | |
1 | 2606:4700:20:... 2606:4700:20::6819:7b63 | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
1 | 2606:4700:30:... 2606:4700:30::6812:2af9 | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
1 | 2a00:1450:400... 2a00:1450:4001:824::200a | 15169 (GOOGLE) (GOOGLE - Google LLC) | |
1 | 94.31.29.128 94.31.29.128 | 33438 (HIGHWINDS2) (HIGHWINDS2 - Highwinds Network Group) | |
1 2 | 2606:4700:30:... 2606:4700:30::6818:6ba6 | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
32 | 2602:fea2:1:81:: 2602:fea2:1:81:: | 40680 (PROTOCOL) (PROTOCOL - Protocol Labs) | |
3 | 68.232.35.133 68.232.35.133 | 15133 (EDGECAST) (EDGECAST - MCI Communications Services) | |
1 | 205.185.208.52 205.185.208.52 | 20446 (HIGHWINDS3) (HIGHWINDS3 - Highwinds Network Group) | |
1 | 2606:4700:30:... 2606:4700:30::681b:a51e | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
1 | 54.87.177.236 54.87.177.236 | 14618 (AMAZON-AES) (AMAZON-AES - Amazon.com) | |
2 | 2a00:1450:400... 2a00:1450:4001:824::200e | 15169 (GOOGLE) (GOOGLE - Google LLC) | |
1 11 | 88.208.9.35 88.208.9.35 | 39572 (ADVANCEDH...) (ADVANCEDHOSTERS-AS) | |
2 | 2a00:1450:400... 2a00:1450:4001:824::2003 | 15169 (GOOGLE) (GOOGLE - Google LLC) | |
1 | 2606:4700:20:... 2606:4700:20::6819:7c63 | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
4 | 95.211.229.245 95.211.229.245 | 60781 (LEASEWEB-...) (LEASEWEB-NL-AMS-01 Netherlands) | |
7 | 95.211.229.246 95.211.229.246 | 60781 (LEASEWEB-...) (LEASEWEB-NL-AMS-01 Netherlands) | |
1 | 195.181.174.9 195.181.174.9 | 60068 (CDN77) (CDN77) | |
1 | 216.21.13.10 216.21.13.10 | 53334 (TUT-AS) (TUT-AS - Total Uptime Technologies) | |
1 | 2606:4700::68... 2606:4700::6811:a7ba | 13335 (CLOUDFLAR...) (CLOUDFLARENET - Cloudflare) | |
86 | 22 |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
givemejav.com | |
www.givemejav.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US)
PTR: vip0x00f.map2.ssl.hwcdn.net
maxcdn.bootstrapcdn.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
code.ionicframework.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
www.givemejav.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN15169 (GOOGLE - Google LLC, US)
fonts.googleapis.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US)
PTR: 94.31.29.128.IPYX-077437-ZYO.above.net
cdn.popcash.net |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
cdn.popmyads.com | |
popmyads.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN40680 (PROTOCOL - Protocol Labs, US)
gateway.ipfs.io |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN15133 (EDGECAST - MCI Communications Services, Inc. d/b/a Verizon Business, US)
ads.exosrv.com | |
ads.exoclick.com | |
static.exosrv.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US)
PTR: vip052.ssl.hwcdn.net
code.jquery.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
statdynamic.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN14618 (AMAZON-AES - Amazon.com, Inc., US)
PTR: ec2-54-87-177-236.compute-1.amazonaws.com
dcba.popcash.net |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN15169 (GOOGLE - Google LLC, US)
www.google-analytics.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN39572 (ADVANCEDHOSTERS-AS, NL)
ca.clcknads.pro |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN15169 (GOOGLE - Google LLC, US)
fonts.gstatic.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
code.ionicframework.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL)
syndication.exosrv.com | |
syndication.exoclick.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL)
syndication.exoclick.com | |
syndication.exosrv.com | |
main.exosrv.com |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN60068 (CDN77, GB)
PTR: frankfurt-1.cdn77.com
c1.popads.net |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN53334 (TUT-AS - Total Uptime Technologies, LLC, US)
serve.popads.net |
- IP Lookup
- urlscan.io
- SecurityTrails
- VirusTotal
- AbuseIPDB
- Censys
- Domaintools
- ipinfo.io
- Shodan
- ASN Lookup
- urlscan.io
- CAIDA Rank
- ipinfo.io
- CIRCL BGP Ranking
ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US)
c.adsco.re |
Apex Domain Subdomains |
Transfer | |
---|---|---|
32 |
ipfs.io
gateway.ipfs.io |
1 MB |
11 |
clcknads.pro
1 redirects
ca.clcknads.pro |
54 KB |
7 |
exoclick.com
ads.exoclick.com syndication.exoclick.com |
508 B |
7 |
exosrv.com
ads.exosrv.com syndication.exosrv.com static.exosrv.com main.exosrv.com |
4 MB |
5 |
givemejav.com
1 redirects
givemejav.com www.givemejav.com |
20 KB |
3 |
bootstrapcdn.com
maxcdn.bootstrapcdn.com |
47 KB |
2 |
popads.net
c1.popads.net serve.popads.net |
29 KB |
2 |
gstatic.com
fonts.gstatic.com |
19 KB |
2 |
google-analytics.com
www.google-analytics.com |
17 KB |
2 |
popmyads.com
1 redirects
cdn.popmyads.com popmyads.com |
27 KB |
2 |
popcash.net
cdn.popcash.net dcba.popcash.net |
26 KB |
2 |
ionicframework.com
code.ionicframework.com |
116 KB |
1 |
adsco.re
c.adsco.re |
404 B |
1 |
statdynamic.com
statdynamic.com |
98 KB |
1 |
jquery.com
code.jquery.com |
34 KB |
1 |
googleapis.com
fonts.googleapis.com |
673 B |
86 | 16 |
Domain | Requested by | |
---|---|---|
32 | gateway.ipfs.io |
www.givemejav.com
|
11 | ca.clcknads.pro |
1 redirects
www.givemejav.com
ca.clcknads.pro |
6 | syndication.exoclick.com |
ads.exoclick.com
|
4 | www.givemejav.com |
www.givemejav.com
|
3 | syndication.exosrv.com |
ads.exosrv.com
ca.clcknads.pro |
3 | maxcdn.bootstrapcdn.com |
www.givemejav.com
|
2 | main.exosrv.com |
www.givemejav.com
|
2 | fonts.gstatic.com |
www.givemejav.com
|
2 | www.google-analytics.com |
www.givemejav.com
|
2 | code.ionicframework.com |
www.givemejav.com
|
1 | c.adsco.re |
serve.popads.net
|
1 | static.exosrv.com |
www.givemejav.com
|
1 | serve.popads.net |
c1.popads.net
|
1 | c1.popads.net |
www.givemejav.com
|
1 | dcba.popcash.net |
cdn.popcash.net
|
1 | statdynamic.com |
www.givemejav.com
|
1 | code.jquery.com |
www.givemejav.com
|
1 | ads.exoclick.com |
www.givemejav.com
|
1 | ads.exosrv.com |
www.givemejav.com
|
1 | popmyads.com |
www.givemejav.com
|
1 | cdn.popmyads.com | 1 redirects |
1 | cdn.popcash.net |
www.givemejav.com
|
1 | fonts.googleapis.com |
www.givemejav.com
|
1 | givemejav.com | 1 redirects |
86 | 24 |
This site contains no links.
Subject Issuer | Validity | Valid | |
---|---|---|---|
*.bootstrapcdn.com COMODO RSA Domain Validation Secure Server CA |
2018-10-03 - 2019-10-12 |
a year | crt.sh |
*.googleapis.com Google Internet Authority G3 |
2018-10-30 - 2019-01-22 |
3 months | crt.sh |
sni101728.cloudflaressl.com COMODO ECC Domain Validation Secure Server CA 2 |
2018-11-13 - 2019-05-22 |
6 months | crt.sh |
*.ipfs.io Gandi Standard SSL CA 2 |
2018-03-30 - 2019-03-30 |
a year | crt.sh |
*.exoclick.com DigiCert SHA2 Secure Server CA |
2017-12-12 - 2020-12-16 |
3 years | crt.sh |
jquery.org COMODO RSA Domain Validation Secure Server CA |
2018-10-17 - 2020-10-16 |
2 years | crt.sh |
*.popcash.net COMODO RSA Domain Validation Secure Server CA |
2017-04-05 - 2020-04-26 |
3 years | crt.sh |
*.google-analytics.com Google Internet Authority G3 |
2018-10-30 - 2019-01-22 |
3 months | crt.sh |
*.google.com Google Internet Authority G3 |
2018-10-30 - 2019-01-22 |
3 months | crt.sh |
exosrv.com Let's Encrypt Authority X3 |
2018-09-26 - 2018-12-25 |
3 months | crt.sh |
This page contains 13 frames:
Primary Page:
http://www.givemejav.com/
Frame ID: D943E90FA68B4D9C96CA65E0371788C3
Requests: 78 HTTP requests in this frame
Frame:
http://ca.clcknads.pro/v2/a/ban/iframe/24955
Frame ID: 37533C7629DE59A281057CB6CE4B2871
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exosrv.com/ads-iframe-display.php?idzone=2961062&type=300x250&p=http%3A//www.givemejav.com/&dt=1542771165449&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: FF96937BB92FF718E25A025FBE88B77A
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exosrv.com/ads-iframe-display.php?idzone=2961064&type=300x250&p=http%3A//www.givemejav.com/&dt=1542771165450&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: F291F547E231E40F18B2E0A224BBE6BA
Requests: 1 HTTP requests in this frame
Frame:
http://ca.clcknads.pro/v2/a/ban/iframe/24956
Frame ID: 18BEC9EADC570ED9E9A416DDC3376AED
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2159731&type=728x90&p=http%3A//www.givemejav.com/&dt=1542771165495&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 5601C948550962101AA9F864ABF25896
Requests: 1 HTTP requests in this frame
Frame:
http://ca.clcknads.pro/v2/a/ban/iframe/24957
Frame ID: 931A1BD9D8328FA92FEB8AE6A1CEC151
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2159733&type=728x90&p=http%3A//www.givemejav.com/&dt=1542771165550&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 8167122A1E3DA8FE80225CBDA53AE9AF
Requests: 1 HTTP requests in this frame
Frame:
http://ca.clcknads.pro/v2/a/ban/iframe/24958
Frame ID: 3BD69F2F7D02B2CDF999F49F011C8660
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2159737&type=728x90&p=http%3A//www.givemejav.com/&dt=1542771165581&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 64C6F009974C86848767CBFDE771501C
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2158661&type=300x250&p=http%3A//www.givemejav.com/&dt=1542771165597&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 879C88341E92C6FB3F1784530C924B99
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2158663&type=300x250&p=http%3A//www.givemejav.com/&dt=1542771165599&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: B4B02113DA6B60AF6D522AF91EA8E749
Requests: 1 HTTP requests in this frame
Frame:
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2158665&type=300x250&p=http%3A//www.givemejav.com/&dt=1542771165600&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: E78AFDAFE7567354BFC5581B61BBCE3C
Requests: 1 HTTP requests in this frame
Screenshot
Page URL History Show full URLs
-
http://givemejav.com/
HTTP 302
http://www.givemejav.com/ Page URL
Detected technologies
CloudFlare (CDN) ExpandDetected patterns
- headers server /cloudflare/i
Google Analytics (Analytics) Expand
Detected patterns
- script /google-analytics\.com\/(?:ga|urchin|(analytics))\.js/i
- env /^gaGlobal$/i
Google Font API (Font Scripts) Expand
Detected patterns
- html /<link[^>]* href=[^>]+fonts\.(?:googleapis|google)\.com/i
Ionicons (Font Scripts) Expand
Detected patterns
- html /<link[^>]* href=[^>]+ionicons(?:\.min)?\.css/i
jQuery (JavaScript Libraries) Expand
Detected patterns
- env /^jQuery$/i
Twitter Bootstrap () Expand
Detected patterns
- html /<link[^>]+?href="[^"]+bootstrap(?:\.min)?\.css/i
Page Statistics
86
Requests
57
%
HTTPS
52
%
IPv6
16
Domains
24
Subdomains
22
IPs
5
Countries
6247
kB
Transfer
8771
kB
Size
13
Cookies
0 Outgoing links
These are links going to different origins than the main page.
Page URL History
This captures the URL locations of the websites, including HTTP redirects and client-side redirects via JavaScript or Meta fields.
-
http://givemejav.com/
HTTP 302
http://www.givemejav.com/ Page URL
Redirected requests
There were HTTP redirect chains for the following requests:
Request Chain 5- https://cdn.popmyads.com/pma.js HTTP 301
- https://popmyads.com/x/pma
- http://ca.clcknads.pro/v2/a/vsl/imp?d=Xf0D4dlk5draV0lQhVJwZawwn81jtu56M1bEABRgzmUWiXrsI2jTz%2BKHB6F45lUShxcVuEk5%2F%2Fc0Hz0F5I41RxtohhpZjpsV%2FtPzTW1P9Q%2B49cWFwIhihgh7T0UAlibo5CL7XO5WFmcAILDI2t70fm5eR7zFFLkfnQ%2FGx7R9uvj5gnK5PC9KhkHd%2BZgVGyLVHI9dzBzs2kygyqV7m7HzPDHUlRFRZXbtF%2B3GZLkY7decpUaFByxNbkfAuV126uwFR5K4DruuQotKUUaWsqHiUL%2FmOtYzv9ppk7pWXumDlETXw5S%2FsrO5kKVuzKtVcnQWn1Sa09SvoReALMBefgWXq%2FlmggFflZO7utPgz0jjFJKy1jsd2VivKeG0%2BZuCk1lGmZoXwUEeo0lEZwXmeNBAJ9SEG7Iv2IxhRnM8CWH1VvdZlQc%2Fq71BcTGHtFljzwJpTNknm9mqg0zn8lFBwpF2GEFPGsDU46iBRm9D3UiCVWDTtGxs%2FRosInsifCbUbO%2BFpu%2BWIupWYsciUumc8kIajsmFnBml%2FgiLMJHqjenoo4036meG8xQUpG47CK%2FglVgbR2RtjItEycVpyOHritHuOKFFh04KVHZhGPczxRclA5rANKxGwlheHeXkq0Fa1CkcRdDl%2FkxZ0wB%2FsPOfw%2BIVypE1MyQIoeVJ3nIL6xsYxcz5rAuDHx0e4%2F%2Fq9%2BGdFu3MYvudBVsUH%2B5FzbA4Wl7a6bbbP%2B4yii5KaVYfC9HCFWcmyVxtTZvXO8MFiMSmxJJHyqdQ%2F6hKe6ubdNSw1kLh7j8fOpqpgnBQVjZn3jvz4iVluqEdrSJErQ7WJfl3og5IjQzZFgUxOvFbJK2lmi5rMPyEB2ESg6mFJE28w38Xb0llsxNbaXbl1%2Bk6mIvzMq7bYSc%2Bf73Fkn1xIk5dDJ2%2BMTdGUaZTdA93sB9Osi0YHO7CuQsYdv1t%2Fsq60a4KmDGE066YTeIrL0R3qQmTPdcUHgmK0ifGurg%2FOu7t8tsiBUIZr2ZE5Y74i74UzcTb6jkjwB8gRZkfo65rW4izTaSWdBAyB40Uvxone58BKJHIWjmpgRE7Iz9JwDDpvwZq2K3Vy5MOscYJh1ULhHk1LINsJ8%2Fq8%2FfhAmTmtDLWwTF9D%2Bt5IAyh%2F29bFmbNKJS8ITycahfcvDMT66MlvgJI3GtuKKb0HIuiFyGpOylEcysfJmmSyU9tbuLDRkQ1HpfBLnxb6K6W6poAw8EDPlV9gQKjRvcwF0u4d7gx95L8IG8Hz%2BvxgEkXYcg1cnU6AKg7rIcW0as57ln7LnCiYev7h9UK%2F9qn7HI5QPHHsXOEMjjMGz%2BykzvhVuplrmLdaWufWIQtTNBGKdP79HlSbjstlGqECGnud5wSWt%2FebdjMNjIsXsCzIza9WXsE%2FbfZZiPALfXmjSdsfe03RdghfuVXaE%2FaxGoSMqTHpZV%2FudUykPPNUF4pW%2FJtqD4zOzQ71u6CElKtxPOnYjd%2FmAvhab%2BS6bJ%2FPJUzlQOoa3HhnVK2nst%2FNAztQ8LYSmEAk5e8rxz4Gye160BWGWVF9WDGS%2FutOm4GuUgWSYRwQntTy08vPoRoO2AQnUnjFzNzKHP43QeCxLHWgHGkVY6Umv1bRQZb8%2BrmIHXsi%2FmFyU%2F4psKVYV%2Bok2wSWZZdE2Oqk4FEZdMNEmF5%2BqOceRb%2FHgSFh5A0qbQoIyXITbyakz9f5XGYYpxI8a7yCLIZAzED%2F7tleHLRAJaprBhezDVCIA7OxJP9nPghG818Nz3L72KiQKMvOsMY7aqq9alizZYkvzEd5LeT1Mw2GfKw9IzrM%2BI5JRqHUA7qUG0gN3CLozx%2BEp8CoH35Ypa0bPvB7v%2FaYtmuHSZNSeZLfkdNSQQE7086FZuBOhY9Gfdp%2Bm%2Fdax0SpQVljS4ocFxOvhbqvpgTmXJzFIC4aU380UxCoVouXuBCZwaC34sfbPVgkV2h8dZ6rFTuGYygNdXIB7nMTDU7oiyBjW1BqcDs1xOGW7Ie1padFRBt9Tudfjy80LLQ4TjHV7Q8jWTiah6ZiZhLsT3xSkFpwFd%2FluVWqwgiL5psg40IxL3dcHnxy16LaZAiD9JNcw2YxyS1VcZN4useKxN4dosAwEKHovquv9uf8W6B8fZwuY7lUDi66fIA7RLY7pXO2lr0iKImA57ckb%2FT8GCKq2FT6rOhiTPD3C54mmtYwikXbVBIohLMvKyu7Zd6c8vHEp%2BL1nPtrpbq0zquaqxuKDWaPU8RRo74CCemGGn6lzEDVVgmJuKMMtf67QuCSENXE%2F%2B9crI6MNrh5YwRnp8F%2BVvr3AVx2sxVCBU%2FsNwqyVkGfE3cuvNs3ZPZWwkkBMds7GHmKvBv67eFAJHCTal3C5EAB0S1T19cqEG0zENLps1cgLQgxgdwQyFTDzDkGm%2BoRP2l5xTZqOiQIszTf2LAgK7%2BSgEq2sZ79%2BpYX%2BrXzQpL1zmbfBvA4ffr1l4gOE7z3m%2FZOupHgMdWBEZY6M6EKZitECrub6DKDlJfyUwHnwPV7rTUNdluLlsJtYHSNm4cYuqUI9taagNGYHZQ8D1sRLXsjwJc4ozPS%2FLF7eCMEY8uBtsxUwwbpgC%2BFVM82SQeqSPRZskxKYo3d7iiuL8MKFk0zV24dE4xlhuNQ8o87jsmM%2BJkWi3g%2Fq5ST%2BsaoKEuR01nTJi5OSmqRVSclpOqsutwCHDu%2FmaVbclJ9bjkUlewHHLcCleRqKIddYTXX9FdZd6oySkZ3HI4OF7lWfoorylJ7olLPy5he%2FGdin2LETkHyJdRJ1VVWnDlzZ9xMa2V%2FjH3afm9LUpaPZlBfh9B2T8qCupCb9yfYhwY7pXix3S2l8xgmRwA3EuWVZjdr9NTh4%2FlNzvPVjqMebUNKwLG24d6L3PqGAnCAE6ajcCY9eVfpl4vCT544nnsudRCTZm6KdtMv%2FiSE2zAXCzx6VqG%2F%2Fs%2FlFoMHc%2BEBUPgTzpGYvQI6p%2BQmRCJ8w1nLRoy8UwGLJsaM7XctWWIs%2F7U0mOOBSV6%2BlQaXIWFQWRcEbeBNtXG0g%2BCG7EbOJfglByAN42BIkQdGl98IRVEbZnHIPXRNDo%2FyOBWWAcLWaYV3XO%2BgdQTZMcQ0hu7L1bO4mDCBtlIcHRx6Z1x6IzKYxNj1hKThOH5AugaQwcx7hEHvzkfSNs3GB2FT68WkeOKkKLNGnSF8e6hANFFjzIngI5MaHSDUKHjAxC%2Frwg6kkTkZeN3DwRqWYwBFN1%2BDbpDPrZ8CEUlZaO%2FZhuntdOapTK4%2FYee8cc74W6e%2BSTS1ftajSqCwJKvQjNWSTX989JAfDDlPtole7DyHglgE0K6DiKOtpqewl2ijAJgemkeqoVpdGc6g3nf0T6rPCVUmGKWDtJgz1keDZqLgrdXM6dbdHG%2BCeeNqqPvdLF1%2BswfoPqi1tOYZiEVPsNX2zSbDKSmJYDbOkV9byNyauGHnaRsGmqBipuB68guEczzWlJ%2BQ4TnUUfJAnqmgweOE6RQNSwlSRHYZ9uGbqihRzLzQ2QCakIcA19H%2FxmEyX03V9lnb0BIN2BSiEw8pKBxkIdPCbt235fzKu4SIbiYDdWhKyZiRPzcj6fFjFLc9sIpqcpEUQI%2BovZs7GB%2BJf0%2BJ7GahrjRc0ytk1WQCCZAZnhOIqBfrwYVbFw%2F1B8cKVBUfd22RJM1HaM3PQFR0tNHGfrTBd9Gttii3tutD6JK7Vpns3X2sS1IRk2C2Dyy6z7ggfY8YHKDZ0pYuqXr%2FUDvu2fm%2BbnpA9iuUzTWdly2avDPGoOErwnkD9%2FZOhlbHLDVIazWt9dpAJNHxnL85PhhZWwk465ug3QoR3R3138oFnHxXgwdVjSa1TAYeShMDBwky14w80vlSkSPBpgrW4voX3yXJ3nMOyqaEpYAyeUza5beDXfOZgBtZuADGrc3wiSnpcKu5NUbgV%2BEqrPcjmW6hYBEVLOnQn5LAYERwEupI2Fk2vQsuXUnrJtKwlLG1PVZPQ7fGoO0pd72ACNuUTvoPH0ZjFx0ImQuviazZ%2BHJz9IHKjz%2FvJOrtoCEMUjswvvzHoTFnFbd2vnq2q02%2FtDSqOzzDyS1pCy56p9aBJ%2FptrYxfnPt0YuLSmtX%2FpWcyVIuEJvhDE3iOa%2FWWhvA1WnnAUtF6c9E3ZDXZ3g640odNehoeiXQmnEWw4JsgULksDJDmbk%2BL%2FgACAOFboteU6fg9u07m1rqHIYXtHnVEDenUOehFfoxKluPMX37w%2Bznf77h%2F6%2B4CQSEIDq0pnnAyRT4c7b6yJO3nv%2FgINIG1YVuUGRs8l4PfOmcpgaqKjxOUvYjEzDmXRE%2B%2BWFVbufPe%2BQfhM1kPdhNFCJRctIuqLCDm%2FxScdo7YG83tQu7DY7aWyAVOyoOYUCnCBwH7ylKjxwQqUtYpBabCl3vWcaMRQ4p%2B06TnN01TRC8N4pwlUpaTRL3mNKGliWMYwZ%2BW20rlyZXtVZ2DbaMT1zaLmtrWSvMp5JWkaNxMWc4cmzLkrZ6FIoQ8cxVFIBZrx0JioojmtvB%2BxzKiMspVqCX3VlRhsTSMGM0tKO%2FhKuDJ0KQK15zRZgVRZasfryQ9VSUoJYMQziVLh80zZtgg%2FTirYKKDxcEJMRyQmAZ4Aqo3YSplTfO2L8qkPkyHkrk6jrNp57OCHprZze7Im2TD5y%2BTk1J7r9KaWyniL6FB9V4FUBonBfJnbKsw9PRWY5rLA0NbRGcJiC4uwY8zKM193PHBGUt7BlvM3Oo3KWNfAqXCBfLi1VIZmaHn1wM5e9ZE4Rh5zU6uebAplqiaJj%2FLmnqSVVr7R132iJtJt2Tn%2Be23lO0e3cFPIyV8NoJLAzCP5BDtd3XAzp8dbEqeBkHkUYa4uXZ7WOJX73%2BGj3Oo%2BTbpfwry9hcbd2legNmNW5wFmCkGs4BB20SGZkx18zTj%2BNBbm4KaXklVg3AsRooDrJZx2HOXb0pOd8BOIVX4jIzhfKx8aAb1ztXKiWM%2BcqF8gJk50SEphh%2B9kD%2BKO1tNj7sSVSaRQBdEee6HUKh%2BUDq0pJpC4TvghrLu8850B5TumOFVm3VaaaObglVbLNviaVaXAZDNkRRiwbgJSZQpyTcCIrgtjVv1BXjchvOWjRSbV%2FDsATX8FcX3DSMY1xMG6VRTlVCcReid2EbeRhhh%2F2nK%2FSGDHjwczrOGQmfekyIsYpbW3hx48BWISR%2BE4r2f49sI3HB%2B6x7w%2FELb%2BW7Ve4SbhLwclnjefu%2FajgO%2BnCXT7bYR2oZiW3wfBoBCjdNBYixvKWRUQN6dXx9c7dtJhLnExvYLyTZPDDhUvcjttxEjtMgExe719JMU2MiwoIMep9yOjCwzRrXtrRCAoRK17bxb7NnJiFWx6uhuzCKNCekhlWnc%2F6lzqyiTqEI4gWYQW7V4Kf3d7KSSiXj7%2BTi99b6wto2oXYgaVKosNs9Fr7%2BGx39FMni4MX4x41D0G5G4OcIRXy60LnsjhG4pu%2BeKihabZty18McQ7rAESVkpQKp3QQn%2FL8HUENGokv9siDJqDxZKE4vf%2BED6dT%2FoO8zu8oOXUw0TB7tW4ipRESNm9m9PL06nzT%2Ff3Og8J21m2axaZkdg2c8%2B4ZgzCK0OrMT8h31jztmzw0H%2FdZkUlIfqpTmStsJC7faq40z8UgK91kxkd5eWECQHzVH8TLoKfeCz5%2Bvdk0FAgXQbCa%2BuJOwnM33CNNd2jvxYJ4f0KMykZfVd04epwtWOo7OJZ32fC6WYeXCO1x1vrqb81dtFpixQ7h0SiHq4W6iwMfZjDLogSY5oL2JzFC1jeRS3zL9EO70UL97gZrKctuZw0fuJc3P2mOqbUQykStA7LwgIaV92OBGojDCYIZUaTcOD7a6CBVeLyLzebIwToUTXGTNuZ%2F8s7ppsiaXzHiwD7UUeE0ATJ0XzcVXNV1hEBeiEQEFOqYwVLd2dkQxi1dEFRUFEO5C1P%2BGWiSLjQEmyI%2FzzLj2FzguQ5diAja67M4%2BKLHT4r%2ByPWABO1K2XKTMrmU%2F2Dbyal2EEdhBM5Pe7N3GjJnqDbnKZbZdDmAlqvsdhULy53sHkiLVp7Wf9SSijZoLcgHhSvd%2BMCdMR4shQpaurGr17uEIJmtZj4VhZMyJY3OU0G%2BrDn2TrvcvM5OJE3MrFH9rGa34v7UhcTgfmrd8W4MgyNM4mzz9fI5cAcE7RXpL7mS8y%2FbsDRB4jdE5VUaIF9kg9JFriqvoi7toISQFe6tVWdAm1Zkkvpq7SHLweCOhwLJFK7uEf4%2FBSQ8GtWamN5C8F49%2FhTocg48MyLbG%2BmjMWj%2Fc5u7Rt8BAKjJ1WWrMn0McIXagXq5D67ZLPYMXFVDBGNiU%2FdWyCZYVnKGXavpUnZrZWOEkziyvmGGlgqJRnA5FQfVwBGWAfW4HUUlNZf0%2Bg4yvup2WIbRidCl5yyJqCTQccGouuUM%2FncgqhCGF9buEWuEt3i0fOHUrqxfQhOrbzxqYO5vy12l2aW2NOulF35LFtnv%2BzlFcPSU3FG7%2BzTuFsXsXUjNTAvCy4hKoLLfCYwW%2BhH9SLFEm0aGIH7AoiCkFf%2FKNM3VHSUG87A8OgazrzZp%2Ffsx6Z%2BI%3D HTTP 307
- http://ca.clcknads.pro/v2/a/vsl/imp/b?d=tZwXrTWifQtgtPySvMVH28oF2NQ4%2BGORt5WEtds2dLKkWAt05mr1E60XLdpm6QNkhHiO45a5%2BnvIlPA2%2FCob82UKBWLwQIJh6XFPBxEYEHER2ARGs0I9A0OdBaFwZyjJeb6cyzpptaUbBU9sLQg%2BjdCrwCLZ74mdxR0f8gq5y47LIaT38hsFzN%2BEdalSUOvVXX2cuGYtNbpUOIFRqZcJOqF1YE2ZTOlV%2Fp1MmCZBWbWwwgsWPjfzrHiTqNdBs1TCA1n4hwOO9sgwwpgwveCllQpkWMp1XVx0A2baijNPybE0IV8DzMNc15uJ7bxopl6piZuYaodYS40cXxv7rFcr5mHbydmsQT03Vea275WEvDL5%2FlHyuSHjVQR3f4IIcMK%2Fp1HDnLi2IyEhjk1dZYzwkkIa9Xb8bQYdcjax%2BmlDYk8K7VuD1CnsYT4RkUkEBPKyee5XnbFwbij7CTFGhv7tNZTFqr4QMQYQq%2FLc9lKOl3kUnHosuZoxJjq2WVbQe01ZzuTXQRreCLrxBVVo0xneUFtUE2KVD4HULE6RHcXzKTicNrMq2nfa6znj028DkwiQXBuGLTyb6DCPloPihUkrNjpzT%2FEaaG6YaMfs3rrI2RuLII5c2kWUxHKqVe6ZUg8gbUkdf1mj9R7XVoTw6nhadTs4hTV78ip%2BJ%2FHci1AsXy09DgPvCFrJfmB6M7p%2BOXV0Jcxqg56hl4UzfQWj9EJkX5aVqqhw%2FYgQG4BSIe3KpeCsHw7ZiolCs0hlugMl0xluPb1Gp1ZNdGz5jkqu9sc9a6FKBW8e3qJ3xa3fzdHMuxBIyi%2FDfpuCmnrnP%2FEUxoA8anlPcXH0%2FpuUXgUWyPIsfsH8arXbxU9ctC%2FG93O7vOzOJenplmVnhCxlGv13m5UbXON59yRyfbjpi0crCVynkWvHlqQ3E5BGDhCQpphF93jjXkWoceky2qeDFUp87Io2IKedQXQdJK7LbzcMDe9pTEEiKsSEWzaUiMAI0DtjJo%2BRfrlm7Ve6Scb6iea5fOLKZyyBRNuPdl56hAmuUzLl0v4x3obkzSVXnf%2BI0Rw0YiEtKEjCSDc00Zhg4BUJK4NkP9IDzNigV7XzIUhxMtIAJmlDqdZUlzG9NlFapTdR3uMi4uBnMwMBgMNfTrstxwS81OvknK3RFxKGkYEUZGxSVhviAWtY%2BX12jNMjs9NfJlkpvsoqfcBteXb%2B8h9hmH0WNTNzRv29ZszX5d1J%2BwPlOPtoewDpKOnjucbMMQWntgPCC0a%2BVoW54vmUO%2FzoCQ6WnRS%2BaHFbR%2FvW5geoBVSoq9qbVp7XabjWg8Qr5XoVeSTpN2F4XyKs0%2BQkeObTirYJV1fyYmJygq07PFq18Pvl6im9xpF68z3xmL32zox5MJCbEJ6a66zynvntAxf%2FL40Gx4lI%2FrN505SsIeCvLTipRrYBqcsRxuaSQjO%2Fd48CYkTvy%2B2NQc8iJp60a2CNU4nhi1xLw%2FY6xB0N7w8b8B3MvW85WfRb7e1EjLwjO8fXOcReeMvwDb7k%2FI8mpW5KygYHNp2U9mqNlNAwlNqe0JwcYo22RhqXeRiPyZ8JElO74O1kVymrgWBE3dE0k78yVgkBPaSagpQHVVNqTWV977mt0Rg74ZETrbI%2F3N88JTJtyTZPeEVbAZ1vszRUKkmSi7C3x70%2FDpySmmhVVov16fWXy5OhXlEO3aiQTwEt
86 HTTP transactions
4 data transactions
Method Protocol |
Status | Resource Path |
Size x-fer |
Time Latency |
Type MIME-Type |
IP Location |
|||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET H/1.1 |
200 OK |
Primary Request
/
Show response
www.givemejav.com/ Redirect Chain
|
61 KB 13 KB |
735ms
730ms |
Document
text/html |
2606:4700:30::6812:2bf9 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
Redirect headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
bootstrap.min.css
maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/ |
118 KB 20 KB |
30ms
7ms |
Stylesheet
text/css |
209.197.3.15 Highwinds Network... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
ionicons.min.css
code.ionicframework.com/ionicons/2.0.1/css/ |
50 KB 9 KB |
16ms
10ms |
Stylesheet
text/css |
2606:4700:20::6819:7b63 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
style.css
www.givemejav.com/static/giveme/css/ |
9 KB 2 KB |
15ms
9ms |
Stylesheet
text/css |
2606:4700:30::6812:2af9 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
css
fonts.googleapis.com/ |
4 KB 673 B |
16ms
14ms |
Stylesheet
text/css |
2a00:1450:4001:824::200a Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
pop.js
Show response
cdn.popcash.net/ |
64 KB 26 KB |
49ms
16ms |
Script
application/javascript |
94.31.29.128 Highwinds Network... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
pma
Show response
popmyads.com/x/ Redirect Chain
|
66 KB 26 KB |
71ms
69ms |
Script
text/html |
2606:4700:30::6818:6ba6 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
Redirect headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
givemejav.png
www.givemejav.com/static/giveme/img/ |
3 KB 3 KB |
16ms
10ms |
Image
image/png |
2606:4700:30::6812:2bf9 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmZSoP9PK8pC87X8pAyJhYSdiW5xJHgMvP9YEVn2H6GSx3
gateway.ipfs.io/ipfs/ |
48 KB 49 KB |
28ms
7ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmT1tQRPZvC7svzGyFEiJrhHjBM94H7C9ZjGQD6cwiSCoJ
gateway.ipfs.io/ipfs/ |
58 KB 58 KB |
244ms
244ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmaYX2EsN2oLcKsQnvcHv9WVtyU2htN4osc6YFs7NpcLpW
gateway.ipfs.io/ipfs/ |
44 KB 45 KB |
624ms
619ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
Qmb3oTHqomgPBTo9Brpa3dXy25mdkYPVVof5kPmmtFJkv7
gateway.ipfs.io/ipfs/ |
51 KB 52 KB |
391ms
383ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmPQBCu5rKLnuidZEiyMBjeMGuP7MZ8amVkdqCfhk1Empi
gateway.ipfs.io/ipfs/ |
50 KB 50 KB |
645ms
637ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmUe7XEMcXPAjNQWu8Lx4qhh5dSgiNQBMkdSEK1fGndnqg
gateway.ipfs.io/ipfs/ |
39 KB 40 KB |
526ms
518ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmZJ2MfHhG4jSoqYTnk6pjCH6YN1nrs684EVUJ7fQdZSED
gateway.ipfs.io/ipfs/ |
53 KB 54 KB |
601ms
594ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmaQZrPhKUe4f49cwBCpgow7aBcVfJnmpqVfVBY6ZCeNZ4
gateway.ipfs.io/ipfs/ |
55 KB 55 KB |
460ms
453ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
ads.js
Show response
ads.exosrv.com/ |
1 KB 654 B |
33ms
7ms |
Script
text/javascript |
68.232.35.133 MCI Communication... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmdNVsXwBiRmh8TvqoZ8fYEMUcQB4dkiPFNu491XCXbtn1
gateway.ipfs.io/ipfs/ |
54 KB 55 KB |
601ms
594ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmSFEqcnjAmnPxUpbSbAzJMbY7R1qreYNqXmLVvWayjbj7
gateway.ipfs.io/ipfs/ |
52 KB 53 KB |
17ms
10ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmVupQFPSGCcEyH9bXbsL7Y4yj2PUTXZAKacRnRS2qicq8
gateway.ipfs.io/ipfs/ |
50 KB 51 KB |
619ms
612ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmQ2T1siZTJRcKgJZBpBYCWX87f19ctVsQXSiMGXLDsBqe
gateway.ipfs.io/ipfs/ |
38 KB 39 KB |
17ms
10ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmfAmWg5YycWAVfoMwDyuk79VuPRYWBVWwHeTu4pt36NFH
gateway.ipfs.io/ipfs/ |
38 KB 39 KB |
616ms
609ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmVFkrCSFpWNbvKWNYu3itJc2aMrNGskq3ZMj1fx47t9r8
gateway.ipfs.io/ipfs/ |
52 KB 52 KB |
40ms
33ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
ads.js
Show response
ads.exoclick.com/ |
1 KB 508 B |
12ms
6ms |
Script
text/javascript |
68.232.35.133 MCI Communication... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmaNM91CFLWjbnyazrGgdPos72crAgsaDRhSdGArXztnz6
gateway.ipfs.io/ipfs/ |
51 KB 52 KB |
601ms
593ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmTHn8cJUHTi2xu64XU3dDnXnyeCjaWG72f6B8PiN24vR2
gateway.ipfs.io/ipfs/ |
55 KB 55 KB |
41ms
33ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmR2LhnLhJ6MbQhbEH21JPjjNF5NpHwFF5VdNDaVs4RGjN
gateway.ipfs.io/ipfs/ |
56 KB 57 KB |
601ms
593ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmXQCSFQEaWF41BTmZvbJ1FWWSoj2RiVFKsiEPa6s1MTe7
gateway.ipfs.io/ipfs/ |
35 KB 36 KB |
40ms
32ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmTmoTQwHfBVcFvvcFjhoS4iK1kgF7CZPSZ6cumUWuiiun
gateway.ipfs.io/ipfs/ |
43 KB 44 KB |
602ms
594ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmajkDkrX1qBfKCEHuxaKRx1YMawnTiQNir2axNJz9NE5T
gateway.ipfs.io/ipfs/ |
45 KB 45 KB |
26ms
19ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmbRxJYnF6zj55Q5S8ijzJMP4skTbBapcyiMGyNssZBxk1
gateway.ipfs.io/ipfs/ |
48 KB 49 KB |
600ms
592ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
Qmf9qUCkyaphARqmYeX8YA3pe8x1vjmZE1UYS6uuANXFf7
gateway.ipfs.io/ipfs/ |
53 KB 53 KB |
25ms
18ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmbdYn8AdJMjPprYyCzyetPTzKDu4SQveSer7WPD1ZmDtU
gateway.ipfs.io/ipfs/ |
36 KB 37 KB |
615ms
608ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmVojAxoA7ZaoXsKepmDkhBejYThrySMcxvaFd1GqQXrQH
gateway.ipfs.io/ipfs/ |
43 KB 43 KB |
25ms
18ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmRmxBpJW29vdnJNnzMk2ZfRgDEsM9NzZN8Gy7hf8JbD39
gateway.ipfs.io/ipfs/ |
48 KB 48 KB |
603ms
596ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmWKMHywxeEXW3LX2jiyz8LhF5bkB4PCsXwb6eB4CJEbmt
gateway.ipfs.io/ipfs/ |
42 KB 43 KB |
26ms
19ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmX1PUQPUpWz39NZqoNRD9FMnjSdGHvpNc4PM3uaZt6ChA
gateway.ipfs.io/ipfs/ |
40 KB 41 KB |
614ms
607ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmTmXQgTCWA1ojqeuZTzrEtwbtWRXZK9mvWi66FjBGePPE
gateway.ipfs.io/ipfs/ |
40 KB 41 KB |
39ms
32ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmXc1UHCt3artBkKSSaGWtMYPeJkc1japkyPuywooo9d4r
gateway.ipfs.io/ipfs/ |
54 KB 55 KB |
616ms
609ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmcWpVoDkvJiAuK2V1qvgYhRpdW3g1kr1XK1iDCfLDg5ug
gateway.ipfs.io/ipfs/ |
41 KB 41 KB |
40ms
33ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
Qmahyq3RtyV3QUzv4VAsSXi1hKuzkAnwD2Xfz4BJgTJoNp
gateway.ipfs.io/ipfs/ |
40 KB 41 KB |
598ms
592ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
QmfCAaMbowdqeg5jECq9X15Z9XcqmJKK9Wtu718AKTXC8x
gateway.ipfs.io/ipfs/ |
42 KB 42 KB |
39ms
33ms |
Image
image/jpeg |
2602:fea2:1:81:: Protocol Labs |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
jquery-2.2.4.min.js
Show response
code.jquery.com/ |
84 KB 34 KB |
61ms
6ms |
Script
application/javascript |
205.185.208.52 Highwinds Network... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
bootstrap.min.js
Show response
maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/ |
36 KB 10 KB |
8ms
7ms |
Script
application/javascript |
209.197.3.15 Highwinds Network... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
csrf.js
Show response
www.givemejav.com/static/giveme/js/ |
852 B 854 B |
12ms
12ms |
Script
application/javascript |
2606:4700:30::6812:2bf9 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
crypta.js
Show response
statdynamic.com/lib/ |
697 KB 98 KB |
43ms
37ms |
Script
text/javascript |
2606:4700:30::681b:a51e Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
204 |
znWaa3gu
Show response
dcba.popcash.net/ |
0 117 B |
338ms
98ms |
XHR
text/plain |
54.87.177.236 Amazon.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
analytics.js
Show response
www.google-analytics.com/ |
43 KB 17 KB |
12ms
5ms |
Script
text/javascript |
2a00:1450:4001:824::200e Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
24955
ca.clcknads.pro/v2/a/ban/iframe/ Frame 3753 |
0 0 |
69ms
43ms |
Document
text/html |
88.208.9.35 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
TK3iWkUHHAIjg752GT8Gl-1PKw.woff2
fonts.gstatic.com/s/oswald/v16/ |
9 KB 9 KB |
6ms
5ms |
Font
font/woff2 |
2a00:1450:4001:824::2003 Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
ionicons.ttf
code.ionicframework.com/ionicons/2.0.1/fonts/ |
184 KB 107 KB |
17ms
10ms |
Font
font/ttf |
2606:4700:20::6819:7c63 Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exosrv.com/ Frame FF96 |
0 0 |
287ms
262ms |
Document
text/html |
95.211.229.245 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exosrv.com/ Frame F291 |
0 0 |
313ms
289ms |
Document
text/html |
95.211.229.245 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
24956
ca.clcknads.pro/v2/a/ban/iframe/ Frame 18BE |
0 0 |
43ms
40ms |
Document
text/html |
88.208.9.35 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
TK3hWkUHHAIjg75-ohoTus9CAZek1w.woff2
fonts.gstatic.com/s/oswald/v16/ |
9 KB 10 KB |
6ms
5ms |
Font
font/woff2 |
2a00:1450:4001:824::2003 Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame 5601 |
0 0 |
101ms
77ms |
Document
text/html |
95.211.229.246 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
24957
ca.clcknads.pro/v2/a/ban/iframe/ Frame 931A |
0 0 |
54ms
52ms |
Document
text/html |
88.208.9.35 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
js
Show response
ca.clcknads.pro/v1/a/23402/ |
17 KB 6 KB |
22ms
15ms |
Script
application/javascript |
88.208.9.35 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
23401
Show response
ca.clcknads.pro/v1/apop/js/zone/ |
94 KB 39 KB |
37ms
14ms |
Script
text/javascript |
88.208.9.35 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
collect
www.google-analytics.com/r/ |
35 B 101 B |
13ms
13ms |
Image
image/gif |
2a00:1450:4001:824::200e Google LLC |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame 8167 |
0 0 |
97ms
75ms |
Document
text/html |
95.211.229.246 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
24958
ca.clcknads.pro/v2/a/ban/iframe/ Frame 3BD6 |
0 0 |
41ms
38ms |
Document
text/html |
88.208.9.35 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame 64C6 |
0 0 |
97ms
74ms |
Document
text/html |
95.211.229.246 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame 879C |
0 0 |
293ms
287ms |
Document
text/html |
95.211.229.246 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame B4B0 |
0 0 |
308ms
290ms |
Document
text/html |
95.211.229.245 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
Cookie set
ads-iframe-display.php
syndication.exoclick.com/ Frame E78A |
0 0 |
304ms
288ms |
Document
text/html |
95.211.229.245 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
pop.js
Show response
c1.popads.net/ |
68 KB 28 KB |
58ms
9ms |
Script
application/javascript |
195.181.174.9 CDN77 |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET BLOB |
200 OK |
a16be1eb-77a9-48da-a590-a3c35660c62a
http://www.givemejav.com/ |
163 KB 0 |
Other
text/plain |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET BLOB |
200 OK |
a16be1eb-77a9-48da-a590-a3c35660c62a
http://www.givemejav.com/ |
163 KB 0 |
Other
text/plain |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET BLOB |
200 OK |
a16be1eb-77a9-48da-a590-a3c35660c62a
http://www.givemejav.com/ |
163 KB 0 |
Other
text/plain |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET BLOB |
200 OK |
a16be1eb-77a9-48da-a590-a3c35660c62a
http://www.givemejav.com/ |
163 KB 0 |
Other
text/plain |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET BLOB |
200 OK |
a16be1eb-77a9-48da-a590-a3c35660c62a
http://www.givemejav.com/ |
163 KB 0 |
Other
text/plain |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET BLOB |
200 OK |
a16be1eb-77a9-48da-a590-a3c35660c62a
http://www.givemejav.com/ |
163 KB 0 |
Other
text/plain |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET BLOB |
200 OK |
a16be1eb-77a9-48da-a590-a3c35660c62a
http://www.givemejav.com/ |
163 KB 0 |
Other
text/plain |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET BLOB |
200 OK |
a16be1eb-77a9-48da-a590-a3c35660c62a
http://www.givemejav.com/ |
163 KB 0 |
Other
text/plain |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
204 No Content |
0
ca.clcknads.pro/v1/vst_debug/23402/0/ |
0 478 B |
38ms
37ms |
Image
text/plain |
88.208.9.35 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET DATA |
200 OK |
truncated
Show response
/ |
70 KB 0 |
Script
text/plain |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headersResponse headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
200 |
glyphicons-halflings-regular.woff2
maxcdn.bootstrapcdn.com/bootstrap/3.3.6/fonts/ |
18 KB 18 KB |
8ms
8ms |
Font
application/font-woff2 |
209.197.3.15 Highwinds Network... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET DATA |
200 OK |
truncated
/ |
4 KB 0 |
Media
video/mp4 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headersResponse headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
23402
Show response
ca.clcknads.pro/v2/a/vsl/vst/ |
14 KB 6 KB |
18ms
17ms |
XHR
application/xml |
88.208.9.35 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
c
Show response
serve.popads.net/ |
344 B 882 B |
1143ms
118ms |
Script
text/javascript |
216.21.13.10 Total Uptime Tech... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
splash.php
Show response
syndication.exosrv.com/ |
4 KB 3 KB |
57ms
21ms |
XHR
text/xml |
95.211.229.246 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
204 No Content |
2
ca.clcknads.pro/v1/vst_debug/23402/200/ |
0 478 B |
30ms
29ms |
Image
text/plain |
88.208.9.35 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET S |
206 |
abb20fdd67f8d68554bc7617df4e34848211dfeb.mp4
static.exosrv.com/library/141372/ |
4 MB 4 MB |
9ms
8ms |
Media
video/mp4 |
68.232.35.133 MCI Communication... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET DATA |
200 OK |
truncated
/ |
715 B 0 |
Image
image/png |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headersResponse headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET DATA |
200 OK |
truncated
/ |
2 KB 0 |
Image
image/png |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headersResponse headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
vregister.php
main.exosrv.com/ |
0 218 B |
1302ms
18ms |
Image
text/html |
95.211.229.246 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
204 No Content |
b
ca.clcknads.pro/v2/a/vsl/imp/ Redirect Chain
|
0 493 B |
187ms
187ms |
Image
text/plain |
88.208.9.35 ADVANCEDHOSTERS-AS |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
Redirect headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
/
Show response
c.adsco.re/ |
5 B 404 B |
14ms
8ms |
Script
text/plain |
2606:4700::6811:a7ba Cloudflare |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H/1.1 |
200 OK |
vregister.php
main.exosrv.com/ |
0 218 B |
48ms
31ms |
Image
text/html |
95.211.229.246 LEASEWEB-NL-AMS-0... |
|||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
Verdicts & Comments Add Verdict or Comment
57 JavaScript Global Variables
These are the non-standard "global" variables defined on the window object. These can be helpful in identifying possible client-side frameworks and code.
string| uid string| wid string| popns object| IOarzRhPlP string| pmauid string| pmawid string| fq function| f6AA object| _2ua object| _0x4fe7 function| _0x1ce8 object| PMAPOP number| realBrowser number| fqq string| GoogleAnalyticsObject function| ga string| ad_idzone string| ad_width string| ad_height string| p number| dt string| exoDocumentProtocol string| ad_sub string| ad_tags string| ad_notify string| ad_el string| ad_type string| ad_screen_resolution object| google_tag_data object| gaplugins object| gaGlobal object| gaData function| $ function| jQuery function| getCookie object| csrftoken function| csrfSafeMethod object| _pop object| _0x440b function| _0x53f8 object| CRLT object| miner function| v7GG function| f5yy object| _0x138f function| _0x17c1 string| _DfIrLoGdmy6vdQOr object| UmDWe9Dn8Fr2nKAs function| cIPop function| s3EE object| leca object| Base64 object| BJPPopAds object| detectZoom object| PopAds object| _pao object| mnr13 Cookies
Cookies are little pieces of information stored in the browser of a user. Whenever a user visits the site again, he will also send his cookie values, thus allowing the website to re-identify him even if he changed locations. This is how permanent logins work.
Domain/Path | Expires | Name / Value | |||
---|---|---|---|---|---|
www.zononi.com/ | 1970-01-19 05:18:27 |
Name: ws Value: 1710002.566081_2069100 |
|||
.exoclick.com/ | 1970-01-18 20:34:17 |
Name: impressions Value: x%9C%BD%8DA%0A%800%0C%04%FF%92%174%A1%B66%7D%8C%14%A9%1APQ%5B%0F%22%FE%DD%A2W%CF%5E%16f%17v%02%13%9F%C2%A4%8CC%A5%7C%60%CDg%2A%01%83%E4%04%5E%18%FD%83Y%A6%F8%60%A5%C9ZDS%95%BEf%18C%CA%9F%1BZ%866%2C%8B%CC%7D%D3mq%DD%E3%DC%1E%F0%9E%A1%D6%0A%FCU%B4%86%9C3%F4%AF%F6%BA%01%0B%DEF%06 |
|||
.exoclick.com/ | 1970-01-19 14:04:03 |
Name: __uvt Value: a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bf4d1dd817b88.964927263414654300%22%3B%7D |
|||
.exosrv.com/ | 1970-01-19 14:04:03 |
Name: __uvt Value: a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225bf4d1dd75ab71.12062842679196795%22%3B%7D |
|||
.clcknads.pro/ | 1970-01-18 20:34:17 |
Name: lvslcid Value: 3261 |
|||
.givemejav.com/ | 1970-01-18 20:34:17 |
Name: _gid Value: GA1.2.1980782648.1542771166 |
|||
.exosrv.com/ | 1970-01-18 20:34:17 |
Name: impressions Value: x%9Cm%8CK%0A%800%0C%05%EF%92%13%98%D2%8F%A6%87%91P%AA%06%B4T%5B%17%22%DE%5D%D1%AD%9B%81%99%07%8F%09%E9%14RVu%9DU%9EI%D3Y%1E%C0%24%B5%80%17B%FFj%95%25%BEj%B4r%0E%D1%9A%A7%B7%043%97%FA%BB%A1%23%08%9C%B3%A4%B1%1F%B6%B8%EE1%85%03%BE3%D4%BA%01%7F%5D7%A6%87%24%0B |
|||
.givemejav.com/ | 1970-01-18 20:32:51 |
Name: _gat Value: 1 |
|||
.givemejav.com/ | 1970-01-19 14:04:03 |
Name: _ga Value: GA1.2.2034159336.1542771166 |
|||
.clcknads.pro/ | 1970-01-19 05:18:27 |
Name: uuid Value: 20bddd57aa94720e0e38dfec6f2d1bdf4dc3d397497a97ca6dd4d484ec8dfe3c |
|||
trafforsrv.com/ | 1970-01-19 05:18:27 |
Name: sppc_uuid Value: 60bc880d-a98c-4f14-a834-eb09d257e6f8 |
|||
www.zononi.com/ | 1970-01-19 05:18:27 |
Name: w Value: 33647 |
|||
.givemejav.com/ | 1970-01-19 05:18:27 |
Name: __cfduid Value: d43526200771b09c154172fe92f15b72e1542771164 |
117 Console Messages
A page may trigger messages to the console to be logged. These are often error messages about being unable to load a resource or execute a piece of JavaScript. Sometimes they also provide insight into the technology behind a website.
Source | Level | URL Text |
---|---|---|
console-api | log |
URL: http://cdn.popcash.net/pop.js(Line 5) Message:
Popunder Script @ popunderjs.com
|
console-api | log |
URL: http://cdn.popcash.net/pop.js(Line 5) Message:
Author:
|
console-api | log |
URL: http://cdn.popcash.net/pop.js(Line 5) Message:
Version:
|
console-api | log |
URL: http://cdn.popcash.net/pop.js(Line 5) Message:
Release:
|
console-api | log |
URL: http://cdn.popcash.net/pop.js(Line 5) Message:
111
|
console-api | log |
URL: http://cdn.popcash.net/pop.js(Line 5) Message:
popunderjs.com:
|
console-api | log |
URL: http://cdn.popcash.net/pop.js(Line 5) Message:
popunderjs.com:
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
[object HTMLDivElement]
|
console-api | log |
URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO3Y3R0cuYzQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmU0PT09J2Z1bmN0aW9uJz92N0dHLlo0LmU0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmU0O307djdHRy5pMT1mdW5jdGlvbigpe3ZhciBxMT1mdW5jdGlvbihJMSxLMSl7dmFyIEExPUsxJjB4ZmZmZjt2YXIgcjE9SzEtQTE7cmV0dXJuKHIxKkkxfDApKyhBMSpJMXwwKXwwO30sbTE9ZnVuY3Rpb24oajEsVTEsaDEpe3ZhciB4MT0weGNjOWUyZDUxLHoxPTB4MWI4NzM1OTM7dmFyIGUxPWgxO3ZhciB0MT1VMSZ+MHgzO2Zvcih2YXIgWjE9MDtaMTx0MTtaMSs9NCl7dmFyIFExPWoxLmNoYXJDb2RlQXQoWjEpJjB4ZmZ8KGoxLmNoYXJDb2RlQXQoWjErMSkmMHhmZik8PDh8KGoxLmNoYXJDb2RlQXQoWjErMikmMHhmZik8PDE2fChqMS5jaGFyQ29kZUF0KFoxKzMpJjB4ZmYpPDwyNDtRMT1xMShRMSx4MSk7UTE9KFExJjB4MWZmZmYpPDwxNXxRMT4+PjE3O1ExPXExKFExLHoxKTtlMV49UTE7ZTE9KGUxJjB4N2ZmZmYpPDwxM3xlMT4+PjE5O2UxPWUxKjUrMHhlNjU0NmI2NHwwO31RMT0wO3N3aXRjaChVMSU0KXtjYXNlIDM6UTE9KGoxLmNoYXJDb2RlQXQodDErMikmMHhmZik8PDE2O2Nhc2UgMjpRMXw9KGoxLmNoYXJDb2RlQXQodDErMSkmMHhmZik8PDg7Y2FzZSAxOlExfD1qMS5jaGFyQ29kZUF0KHQxKSYweGZmO1ExPXExKFExLHgxKTtRMT0oUTEmMHgxZmZmZik8PDE1fFExPj4+MTc7UTE9cTEoUTEsejEpO2UxXj1RMTt9ZTFePVUxO2UxXj1lMT4+PjE2O2UxPXExKGUxLDB4ODVlYmNhNmIpO2UxXj1lMT4+PjEzO2UxPXExKGUxLDB4YzJiMmFlMzUpO2UxXj1lMT4+PjE2O3JldHVybiBlMTt9O3JldHVybntiMTptMX07fSgpO3Y3R0cuRDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LkM2PT09J2Z1bmN0aW9uJz92N0dHLlo0LkM2LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LkM2O307djdHRy5MMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLlo2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5DNj09PSdmdW5jdGlvbic/djdHRy5nNi5DNi5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5DNjt9O3Y3R0cuWjQ9ZnVuY3Rpb24oQTQpe3JldHVybntlNDpmdW5jdGlvbigpe3ZhciBTNCxsND1hcmd1bWVudHM7c3dpdGNoKEE0KXtjYXNlIDI6UzQ9bDRbMF0rbDRbMV07YnJlYWs7Y2FzZSAyMjpTND1sNFsyXStsNFswXS1sNFsxXTticmVhaztjYXNlIDc6UzQ9bDRbNF0rbDRbMTBdK2w0WzExXStsNFszXSsobDRbNl0rbDRbMV0rbDRbNV0rbDRbOV0rbDRbMl0rbDRbMF0rbDRbOF0pK2w0WzddO2JyZWFrO2Nhc2UgNjpTND1sNFsyXS9sNFswXS9sNFsxXTticmVhaztjYXNlIDE3OlM0PWw0WzZdK2w0WzFdK2w0WzBdK2w0WzRdK2w0WzVdK2w0WzJdK2w0WzNdO2JyZWFrO2Nhc2UgMTpTND1sNFszXStsNFs0XStsNFsyXStsNFsxXStsNFswXTticmVhaztjYXNlIDM6UzQ9bDRbMV0rKGw0WzNdK2w0WzVdK2w0WzBdK2w0WzRdK2w0WzJdKTticmVhaztjYXNlIDExOlM0PWw0WzFdPGw0WzBdO2JyZWFrO2Nhc2UgOTpTND1sNFswXT4tbDRbMV07YnJlYWs7Y2FzZSA0OlM0PWw0WzBdK2w0WzFdK2w0WzJdO2JyZWFrO2Nhc2UgODpTND1sNFswXT09PWw0WzFdO2JyZWFrO2Nhc2UgMTQ6UzQ9bDRbMF0rbDRbNF0rbDRbN10rbDRbMl0rbDRbNV0rbDRbM10rbDRbMV0rbDRbNl0rbDRbOF07YnJlYWs7Y2FzZSAyMTpTND1sNFswXSVsNFsyXS1sNFsxXTticmVhaztjYXNlIDEyOlM0PWw0WzVdK2w0WzJdK2w0WzZdK2w0WzBdKyhsNFs0XStsNFszXStsNFsxXSk7YnJlYWs7Y2FzZSAxNjpTND1sNFswXStsNFsyXTxsNFsxXTticmVhaztjYXNlIDIwOlM0PWw0WzFdJWw0WzJdKmw0WzBdO2JyZWFrO2Nhc2UgNTpTND1sNFs1XSsobDRbMTNdK2w0WzNdK2w0WzddK2w0WzEyXStsNFs2XStsNFs0XStsNFsyXStsNFswXStsNFsxMF0rbDRbOF0rbDRbMTFdK2w0WzldK2w0WzFdKTticmVhaztjYXNlIDA6UzQ9bDRbOV0rbDRbOF0rbDRbMl0rbDRbMTNdK2w0WzNdK2w0WzRdK2w0WzFdK2w0WzBdK2w0WzddK2w0WzExXStsNFsxMF0rbDRbNl0rbDRbNV0rbDRbMTRdK2w0WzEyXTticmVhaztjYXNlIDE4OlM0PWw0WzBdKmw0WzJdJWw0WzFdO2JyZWFrO2Nhc2UgMTA6UzQ9LWw0WzBdPT09bDRbMV07YnJlYWs7Y2FzZSAxMzpTND1sNFsxNF0rbDRbMjddK2w0WzE5XStsNFswXStsNFsxMV0rbDRbNV0rbDRbMTBdK2w0WzI5XStsNFsyXStsNFsyM10rbDRbMjBdK2w0WzRdK2w0WzIyXStsNFsxOF0rbDRbMjRdK2w0WzEyXStsNFs3XStsNFsxNV0rbDRbNl0rbDRbMTNdK2w0WzE3XStsNFs5XStsNFsyOF0rbDRbMjFdK2w0WzFdK2w0WzMwXStsNFsyNl0rbDRbMTZdK2w0WzNdK2w0WzI1XStsNFs4XTticmVhaztjYXNlIDE5OlM0PWw0WzFdL2w0WzBdJWw0WzJdO2JyZWFrO2Nhc2UgMTU6UzQ9bDRbNV0rbDRbNF0rbDRbMTBdK2w0WzFdK2w0WzZdK2w0WzldK2w0WzJdK2w0WzddK2w0WzhdK2w0WzNdK2w0WzBdO2JyZWFrO31yZXR1cm4gUzQ7fSxzNDpmdW5jdGlvbihQNCl7QTQ9UDQ7fX07fSgpO3Y3R0cueDQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy51ND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuZTQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuZTQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuZTQ7fTtmdW5jdGlvbiB2N0dHKCl7fXY3R0cuWTQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LnM0PT09J2Z1bmN0aW9uJz92N0dHLlo0LnM0LmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LnM0O307djdHRy5vND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuczQ9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuczQuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuczQ7fTt2N0dHLmw2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuQjQ9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLlo0LmIxPT09J2Z1bmN0aW9uJz92N0dHLlo0LmIxLmFwcGx5KHY3R0cuWjQsYXJndW1lbnRzKTp2N0dHLlo0LmIxO307djdHRy5nNj1mdW5jdGlvbigpe3ZhciBzNj0yO3doaWxlKHM2IT09MSl7c3dpdGNoKHM2KXtjYXNlIDI6cmV0dXJue0M2OmZ1bmN0aW9uKHg2KXt2YXIgbTY9Mjt3aGlsZShtNiE9PTE0KXtzd2l0Y2gobTYpe2Nhc2UgNDptNj1JNj09PXg2Lmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSAyOnZhciBQNj0nJyxVNj1kZWNvZGVVUkkoIjIjMUw3QTg4LEk1Vz84O1Y0WiUyMiUzRStHO0IlMjIpJTIwRyUwQUUlMjIkLFE/RTIyJTE0UChBMCMqRypLJjklM0MlNUQ/ViUzQz8sdDtHKCUzRTdNL1Y4Mj8lNUM0UTQtJTIwRyUxOEElMjI4N0skaTkoN0c3TTgyJTA1JTVDOE8/OCxaNUolMjUjJTNFJTVDJG4lMjUyJTdCRyxBJD87VjRabTIhTTVUKCQzVyUzRUgzKCxLP0k5OjdHaCUxNiglMUU3Xz9WMyUzRSxaNUolMjIpJTNDTSRJMyUzRTUlNUMkSjM0JkclMEJHO3U5JTVEJHooJTAwPSU1RT1BJDIhJTVDLlolM0UpOyU1RTJQKCUwOSUzRSU1QzdBODghRylQLyUyMDdHLE0lMjUlMjUwUDZNJTIyNSxqJEc6JTI1N1cuWjMlMjA3VD9KJTIyMiUxNUE2WiUxQSYsaz9FNSQ3JTVEJGswMj1fJTNDVzM4LG8lMjBaJTEzKyxuM0oyIyUyNUc5RTgvN1UkbicvKyUwQzBGZCU3QyUyMkc4TTgoLEk1TTg4N0skSiMhMCU1QyhaNS0lM0VVJH4oJTIwN18uWngyJlgoQzM4LHoyVjkhN0clM0VBJTIwJTI1MSU1QyRwLyUzQzdKJFclM0UjJ1UlM0VaJTIyLTVHJTAzJTE3KCUwNTVXNVYzMiUxMFA0QCglMTk1RyUwQVY5JTNDMyU1RTtQPyMlM0NHNVQzJTIyN0skSDkvM00zSzgyJTA1QTZHJTNDO2pHLk07KSx2NEczMiUxM1U2WjAlM0UzVD9aJTA1ISxLO0oyIz9HJTE4UiglMDU2RzBLPyUyMiwlNjAqWjsjJCU1QyRTPyUyMjZWLVoyJTI1IUk2RS8ybEclMUVLOy07VyRAMz85TTVUKCUwQSElNUUkUDcuJ1clM0VBJDIlMTMlNUUkRTQjJ00kVzUlM0U7SS5aJjkhUSRBJTIwKSUzQ00pWiUyMiUzRTNXKVQ3JTNFN1cuWiY4MVY0QyglMUYmVihFMSkseCRQNy4saT9WJi01JTVDJEk3NCxKL0YlMjU4JTIwRzZLNygsajlWPyUzQyZHJTEzSiUyMiklMjBPO0goJCUyMCU1QyUzQ1o4IyxaKEE3ODdHO1AlMjItMVEkSDklMjI1Ry9WOjIlMUZYLkwoLTBaJTNFQTArOlAwTzohJTNDVipVJD8mTCxTLjUoRyUxNVQzJTNFM0clMENFOjk3RyUxOEgoOSUzQyU1RD9WKCUwNSYlNUM3WiUxNCUzRT1OKUEkMiUxM1clM0VWOSUyNTZHOVEkJTNFN1cuWiUxNCUyMDNXMVoyKSRHNEslMjIyJTFFJTVDJTNDUCg/N1U/RyUyMiMlMjBHJTFEJTFEPy04TmJaPyUyMiUzQyU1QyhaNCUyMDNXMVolMDM1LCU1QyRzPyUyMix4LlolMTQ5MCU1QjZBKCg3WjVAMzIlMDJYKEE4OCxoL0EjKTZHdlolMDU4M1QqWiYtJTIwJTVDNFAoJDNKJFElMjUpJTIwRyhBJiUyMDNaP1olMDAyI0w/Vi8yJTNDJTVDLlM5JTNFOUcpTD8qJkcqVjk4PU0jVDMyPSU1QjBBNTgseSRKIyUyMCUzRUcuSyh+YiUwOGJaPyUyMiUyMkwuWjstJloyWiQpIU01VjMyO18oRTspLHU1UzMlM0UsJTdGalolMDQyJTA2UTtKJTNFMiUxRkc4USUyMjg9VyRvMjIlMTglMDkkcSQlMjAsaSRGMyo9Sz9aJTAwKSUyMEozSzgyJTA0TCRBOC0wVT9AKCUwMyxLP1czOCwlMTEkVjM/O0M/WiMlMjI2JTVDJTNDTTgpNkd6WiUyNSUzRTFHJTFEQSUyMjg3SyUwNSU3QiglMUM6WDRaPzIxVT9FJDIwWClBJTYweCwlNjAkQDMuJyU1RSRDMzgsUztSNz8xSzNUJTIyMjNNLlY/LidNP1coJTFGJkszSjEyLHU3WjgpJTI1RzVKNSUyMDtaMVolMTF1JTI1JTVEJCU3QyhjLFQzSTMyJTE0TDRHJTIyJTI1PVckVjM9JyU1QylQKCUxMHplc3glMjVmKWUpJTBFJTBBJTE3JTBFSnBKNzg7Tz8lMDQ1IzYlNUMlMDZXJTdDJTEwJTBGZSklMEUrMiUxRVA0US4yJTFFJTA5KkwyISwlNUQ/VyUyMiUzRT1AJE07MjZQKVQ3ODFRJE04PzdLLlo4IzYlNUMkajoyJTAxJTVDNkE1OD1LJCUxMiglMDg3JTVCL0MoJTE4MyU1RSlaJTE0JCwlNUU/SzojMVguTTklMjIsJTdDLEE4OCxYKlQ6NSwlNUQ7UDcycUclMEVFJCs3TSRnOSElMjJYKEEoaSwlN0Y2RTEyY0clMTlFJTI1KSwlNUQ1STclMjUlM0NHJTFCUSUyMiQ9SyRGOSgrRztAMjIlMERmJTNFQTAlMjUlM0MlNUMkcDcrLFQ/VyUyNS01JTVDJEk5OSElNUMvVCglMEElMjBWN1olMDYjO1cuWiUyMC0lMjBHJTBFSyMvOiU1QylaJTAyIywlN0QtUig2LFg4VzklMjAnTT9aJTA3Kyx4NEclM0UjJTIwRzNKMikqRy1BNCc7TSRWMyUyMDdYKUEoJTAxPUwpQSglMEEzVTZGNy85RyUwOVA3LzlHOUUlMjIvOkcqSyUyNTgsWjVKNS0mRyUxNiUxNSglMjA3Vz1QJTNFMiUyMCU1RCRUNyUzRSElNUMkaS8yOlAlM0VAMyUyMiwlMDhqJTE0KCUwQTtLP1olMTc2LFEuUCY/LGk/VjslMjUhSjNLODIlMDBQJGsmKSUzQyU1QyhaJTA3MiUzQ1Y0QSgvJ0spSyQyJTIyWD1BKCUzQypHJ1olMTgtPyU1QyRHJTNFLSUzQyU1RT9AKCUxOSZQNlcoPyZLM0oxMiUxMyU1RTglMTYoJTBEJFgzSDcuJTNFJTVDJGJkMiUxNSUwMDNFJTNDMiUxQl8oRTspLHo1SSYjJTNDJTVDNFAoJTBEPVokJTE5KCUwRCUyNUclMTZafiUxMCFFfiUwRCgvPVcuRTU4LH4kVjM/O0M7RjopLHguUCQlMjUwTC5BKCUwMT0lNUIzSDMyPUszQz8lMjIsWC9QJTNFIyUyMEc/JTVDMy8sdipBODIlMERNO1YxKSZHJTNDTS4pNkclMDVQPyE3Vi9QJTA5MiUxM1YkcSglMDg3XztROjgsdTtXJTIyMiUxQkclM0VBJTIyLTFRJHYlMjAyJTA4JTBCJHc1JTNFPVU2RjclM0UsJTdGKVolMDItMEc/JTVDJiUyNSUyMCU1QylaJTE0OyxQJTNFWiUxRiUyMjYlNUMlMjJaOyMwUDZBKCUwRStHJTBETTI4Okc3TyYyJTExViUzRUEoJTIyM1Q/WiUyNSUzQzdaM0I/KTZHKkUlMjIkLFo2TTUnLHElM0VMNzIwVS9WKCUxQyUyMFYqQSQ4K0c5SzgqOyU1RSRXMyUyMDRHJTA4TWY0LGgvWjAlMjA9VihaJTEzNCUyMkclMTVTODIlMTclNUQ9QSglMjUhRyUwRkoyKSUyMEclMUJDMyUyMiZHLiU1RCYpLHpjWmoyJTE0UChBMjIlMURJLk05JTIyIUclM0NROC8mUDVKKCUwNixNO0YjJTNDLEkoTTg4LCU3QyUyMlQ/JTNFN0okZzkjOVA/WiUwNSUyNTBVM0oxMiUyNUclMTVSMyUzRSUzRVgjWiUwMiUyNT8lNUM1USUyMjIlMUQlNUIwQTU4LFYvUDMlM0UscyxGZTIlMjVQJTNFUCUzRTIhVTNHMzIlMUNYJCUxNiglMUM4RyUxNk0yLyxYJGg/PyYlNUM0QSQyJTFGViUyME06JTIwM0clMUVFJTIyKSx2NEg5LTZHKUUwKSxMNEY/JTIyNkcuSyMvOiU1QzRAKCUwRTdfNVYzMjFVO1clMjUyJTAyVilNJTIyJTI1PVckJTYwKCUyNSUzQ1AuWiUxODIlMDlHOUs5JzslNUMkbicyJTBCVDVIKDg9SSRvKC86WChaJTA5LiUzRVg0TyglMjA9JTVFJEsmKSUzQ0clMTJaJTEzJTIwN1Q/SiUyMjIlMDAlNUM2QTc/N0cqSyY5JTNDJTVEP1YoJTNDPUkkdDo5NVA0WiUwNiMlMjJMNEAzJTNFLHMyRSglMTU/VmJaJTNFOD9VJHc3KjNLM1o5JTIyLHc1QDMyJTA1JTBDMUZkMjFVNVczMj9WL1czKD1ONFojPzclMTkpUCQlMjUxTSRnIyUzRSUyMCU1QzRQKC4zWjFDJCMnVyUzRVo7KSZYJFAzNCZHJTE5QzgyIVooQTMlMjIsJTFEJGEoJTBCa1ckbTEyayUwMGMlMURvdWtHKEEwKSUyMEs/VigpIVo7VDMyJTdGRztUJiklM0MlNUQkTDk/JkcqQSQlM0MzJTVFP1olMUYlMjImRyUwRkEoJTIyPUs/QiglMDQ7UztHPSUyNSUzQyU1RSRxJiUzQzdLJCUwRiglMTghSSRzYycsTTVRNSQhTTtWJTIyMiUzRVY5RToyJTAxJTVDNFc/ODtPP1psMiUxRiU1RSRzKHQsdzVQPyo7WjtQPyMlM0NHIVolMDQpNUc1SjQlMjAnSyRnKCUwMTdKKUUxKSxMJCUxNCY0LHgoVjc1LEkoQSUyMCklM0NNJHkoJTBGJTNFUDlPMygsWDhXKCUxQz9HblolMEYhPUAkVDklM0MnSSQlMEMlMDgwJTBFSnNaOTo3SyUzQ0g5OywlMDkkRzkhLF81RyM/LHE/TTEkJkclMEFLJjIlMUNVOU0oJTA2JTIyWiR0JTNDeSUzRSU1QjdaJTAyIyUyMkclM0NNJCksWCpUOiUyNTFYLk05JTIyLCU3RiRnOSUyMjVHJTE5TD8lMjA2RylUOiUyNSZHKEU4KCxKLkUlMjI5IUcpRyQjJTNFVThFJD8sdWolMTElM0UuLFo1UjMlM0UsTTVLOi4zSyRAMyUyMDNAJEsmOCFHJTNFTSUyMDIlMTdPP0olMjI/LHcwRzslMjAlMjUlNUQkcCglM0M2XyRBOyUzQyZAJGYoJTFFOiU1QiRKNzo7JTVFO1A5JTNFLE4oTSUyMiksbDAlMTAoJTI1NVc1VjMyJTExVi9KJTIyMjBWNUgzLSUzQ0clMEVNOyksejVKMCUyNTVHLkElMjU4Iik7bTY9MTticmVhaztjYXNlIDE6dmFyIEg2PTAsSTY9MDttNj01O2JyZWFrO2Nhc2UgOTpQNis9U3RyaW5nLmZyb21DaGFyQ29kZShVNi5jaGFyQ29kZUF0KEg2KV54Ni5jaGFyQ29kZUF0KEk2KSk7bTY9ODticmVhaztjYXNlIDU6bTY9SDY8VTYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDc6UDY9UDYuc3BsaXQoJ34nKTtyZXR1cm4gZnVuY3Rpb24oaDYpe3ZhciBqNj0yO3doaWxlKGo2IT09MSl7c3dpdGNoKGo2KXtjYXNlIDI6cmV0dXJuIFA2W2g2XTticmVhazt9fX07YnJlYWs7Y2FzZSAzOkk2PTA7bTY9OTticmVhaztjYXNlIDg6SDYrKyxJNisrO202PTU7YnJlYWs7fX19KCdWTFI5WiQnKX07YnJlYWs7fX19KCk7djdHRy5kMT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuaTEuYjE9PT0nZnVuY3Rpb24nP3Y3R0cuaTEuYjEuYXBwbHkodjdHRy5pMSxhcmd1bWVudHMpOnY3R0cuaTEuYjE7fTt2N0dHLmE2PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgdjdHRy5nNi5iMT09PSdmdW5jdGlvbic/djdHRy5nNi5iMS5hcHBseSh2N0dHLmc2LGFyZ3VtZW50cyk6djdHRy5nNi5iMTt9O3Y3R0cuZjY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiB2N0dHLmc2LkM2PT09J2Z1bmN0aW9uJz92N0dHLmc2LkM2LmFwcGx5KHY3R0cuZzYsYXJndW1lbnRzKTp2N0dHLmc2LkM2O307djdHRy5yND1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIHY3R0cuWjQuQzY9PT0nZnVuY3Rpb24nP3Y3R0cuWjQuQzYuYXBwbHkodjdHRy5aNCxhcmd1bWVudHMpOnY3R0cuWjQuQzY7fTshZnVuY3Rpb24odCl7dmFyIHc1PXY3R0c7dmFyIG81PSEwO3ZhciBlLGksbixyLG8scyxhLGMsdSxoLGYscCxfLGwsZCx2LGIsbSxnLHksayx3LHgsTyxDLEUsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsYXQsY3QsdXQsaHQsZnQscHQsX3QsbHQsZHQsdnQsYnQsbXQsZ3QseXQsa3Qsd3QseHQsT3QsQ3QsRXQsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsYWUsY2UsdWUsaGUsZmUscGUsX2UsbGUsZGUsdmUsYmUsbWUsZ2UseWUsa2Usd2UseGUsT2UsQ2UsRWUsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksYWksY2ksdWksaGksZmkscGksX2ksbGksZGksdmksYmksbWksZ2kseWksa2ksd2kseGksT2ksQ2ksRWksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sYW4sY24sdW4saG4sZm4scG4sX24sbG4sZG4sdm4sYm4sbW4sZ24seW4sa24sd24seG4sT24sQ24sRW4sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsYXIsY3IsdXIsaHIsZnIscHIsX3IsbHIsZHIsdnIsYnIsbXIsZ3IseXIsa3Isd3IseHIsT3IsQ3IsRXIsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sYW8sY28sdW8saG8sZm8scG8sX28sbG8sdm8sYm8sbW8sZ28seW8sa28sd28seG8sT28sQ28sRW8sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsYXMsY3MsdXMsaHMsZnMscHMsX3MsbHMsZHMsdnMsYnMsbXMsZ3MseXMsa3Msd3MseHMsT3MsQ3MsRXMsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGEsZWEsaWEsbmEscmEsb2Esc2EsYWEsY2EsdWEsaGEsZmEscGEsX2EsbGEsZGEsdmEsYmEsbWEsZ2EseWEsa2Esd2EseGEsT2EsQ2EsRWEsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdGMsZWMsaWMsbmMscmMsb2Msc2MsYWMsY2MsdWMsaGMsZmMscGMsX2MsbGMsZGMsdmMsYmMsbWMsZ2MseWMsa2Msd2MseGMsT2MsQ2MsRWMsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGM7ZT13NS5mNigyMzQpO2k9dzUuWjYoMzk0KTtuPXc1Llo2KDM4OSk7cj13NS5mNig0NTYpO289dzUuWjYoNSk7cz13NS5aNig0NjEpO2E9dzUuWjYoMjU1KTtjPXc1Llo2KDg4KTt1PXc1Llo2KDE3OCk7aD13NS5mNigxODcpO2Y9dzUuZjYoNDgxKTtwPXc1LmY2KDM3Nik7Xz13NS5aNigyNDYpO2w9dzUuZjYoMjQ1KTtkPXc1Llo2KDE0OSk7dj13NS5aNigzNjUpO2I9dzUuWjYoNDgzKTttPXc1LmY2KDcyKTtnPXc1Llo2KDMxMyk7eT13NS5aNigyNTMpO2s9dzUuWjYoNTApO3c9dzUuZjYoNDY5KTt4PS9lZGdlLztPPXc1LmY2KDMzNCk7Qz13NS5aNigzMzMpO0U9dzUuWjYoNTMpO1A9dzUuWjYoMTcpO1Q9dzUuWjYoMzQzKTtBPXc1LmY2KDE5MCk7Rj0vZmlyZWZveHxmeGlvcy9pO1M9dzUuZjYoMjEyKTtqPXc1Llo2KDI1OSk7TD13NS5aNigyNDEpO3o9dzUuZjYoMTA5KTtCPXc1LmY2KDk3KTtJPXc1Llo2KDQxOCk7TT13NS5aNigzODgpO1c9dzUuWjYoNDM1KTtEPXc1LmY2KDM3NSk7VT13NS5aNigzNTgpO1I9dzUuZjYoMTcyKTtOPXc1LmY2KDIzOCk7SD13NS5aNig0ODcpO3E9dzUuWjYoMjIxKTtKPXc1LmY2KDIxMSk7Vj13NS5mNigyMTApOyQ9dzUuWjYoMTYyKTtRPXc1Llo2KDY0KTtHPXc1LmY2KDM0Mik7WT13NS5aNigxMjgpO0s9dzUuWjYoMjA4KTtaPXc1LmY2KDE0MSk7WD13NS5aNig0MzYpO3R0PXc1Llo2KDQ0MSk7ZXQ9dzUuWjYoMjgwKTtpdD13NS5mNigxNzcpO250PXc1Llo2KDEyKTtydD13NS5aNigyNzMpO290PXc1Llo2KDM1NSk7c3Q9L3dpbmRvd3MvO2F0PXc1Llo2KDI1OCk7Y3Q9Lyg/OmZ0cHxodHRwcz8pOlwvXC8oW15cL10rKS87dXQ9dzUuWjYoMjE4KTtodD13NS5mNig0NDIpO2Z0PXc1LmY2KDI2Myk7cHQ9dzUuWjYoMTY2KTtfdD13NS5aNigxMzgpO2x0PXc1Llo2KDMyOSk7ZHQ9dzUuWjYoNDEpO3Z0PXc1Llo2KDIwNyk7YnQ9dzUuWjYoMzYyKTttdD13NS5mNigxNjUpO2d0PXc1LmY2KDM3MSk7eXQ9dzUuWjYoMzYwKTtrdD13NS5aNigyMzkpO3d0PXc1LmY2KDM2Myk7eHQ9dzUuZjYoODIpO090PTk1MDI9PT0yNTAwPzB4MjE0Yzp3NS5mNigxNDgpO0N0PXc1LmY2KDE4NSk7RXQ9dzUuWjYoMTQ0KTtQdD13NS5mNigzMjApO1R0PXc1Llo2KDU1KTtBdD13NS5aNigzMTgpO0Z0PXc1Llo2KDE4OSk7U3Q9dzUuWjYoMTAxKTtqdD0vTVNJRVxzKyhbXGRcLl0rKS9pO0x0PXc1Llo2KDM0MCk7enQ9dzUuZjYoMTYwKTtCdD13NS5aNig0NDQpO0l0PXc1Llo2KDQxMyk7TXQ9dzUuZjYoNDU1KTtXdD13NS5mNig1MSk7RHQ9dzUuWjYoNDE1KTtVdD13NS5mNigyOTkpO1J0PXc1Llo2KDQxNik7TnQ9dzUuWjYoMzczKTtIdD13NS5aNig0MzApO3F0PXc1Llo2KDE2MSk7SnQ9dzUuZjYoMjQ4KTtWdD13NS5aNig0MjcpOyR0PXc1LmY2KDQyNCk7UXQ9dzUuZjYoMzUxKTtHdD13NS5aNigyOTApO1l0PXc1Llo2KDI4MSk7S3Q9dzUuWjYoMjk2KTtadD13NS5aNigyODYpO1h0PXc1LmY2KDE0Nik7dGU9dzUuWjYoNjApO2VlPXc1Llo2KDE0Myk7aWU9dzUuWjYoMjE1KTtuZT0vcmFkaW98Y2hlY2tib3gvaTtyZT13NS5mNigyNzUpO29lPXc1Llo2KDEyNCk7c2U9dzUuZjYoMjE2KTthZT13NS5aNigzMDIpO2NlPXc1LmY2KDExNyk7dWU9LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaTtoZT13NS5aNigxNCk7ZmU9dzUuWjYoMjMpO3BlPXc1Llo2KDExMSk7X2U9dzUuWjYoMjYwKTtsZT0vbWFjaW50b3NoLztkZT13NS5mNig5MCk7dmU9dzUuZjYoMzMyKTtiZT13NS5mNigyMDApO21lPS9tb3ppbGxhLztnZT13NS5mNigxNzQpO3llPXc1LmY2KDEzNSk7a2U9dzUuZjYoMzc4KTt3ZT0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7eGU9dzUuWjYoMzQpO09lPXc1LmY2KDM3Nyk7Q2U9dzUuZjYoNDcyKTtFZT13NS5mNigxMTUpO1BlPXc1Llo2KDE5NCk7VGU9dzUuZjYoNDE0KTtBZT13NS5mNig2NSk7RmU9dzUuWjYoMTA3KTtTZT13NS5mNig0MDMpO2plPXc1LmY2KDI5Mik7TGU9dzUuWjYoNTgpO3plPXc1Llo2KDE2NCk7QmU9Lyg/Ok9QUnxPcGVyYXxPUGlPUylcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0llPXc1LmY2KDIyOSk7TWU9dzUuWjYoNDY3KTtXZT13NS5mNig0NjMpO0RlPXc1Llo2KDQzNyk7VWU9dzUuZjYoMTkzKTtSZT13NS5aNigzMyk7TmU9dzUuZjYoODUpO0hlPXc1LmY2KDQwOCk7cWU9dzUuZjYoMjApO0plPXc1Llo2KDk4KTtWZT13NS5mNigxMzYpOyRlPXc1LmY2KDI3Nyk7UWU9dzUuWjYoNyk7R2U9dzUuWjYoODYpO1llPXc1LmY2KDE3NSk7S2U9dzUuWjYoMjcxKTtaZT13NS5aNigzOTkpO1hlPXc1LmY2KDEzMyk7dGk9dzUuWjYoOTUpO2VpPXc1LmY2KDE1Mik7aWk9dzUuWjYoMzEyKTtuaT13NS5aNigyOTgpO3JpPXc1Llo2KDQzMyk7b2k9dzUuZjYoMTgzKTtzaT0vYW5kcm9pZHx3ZWJvc3xpcGhvbmV8aXBhZHxpcG9kfGJsYWNrYmVycnl8aWVtb2JpbGV8b3BlcmFccyttaW5pLzthaT13NS5aNigzODIpO2NpPXc1LmY2KDEyNyk7dWk9dzUuWjYoMzM2KTtoaT13NS5aNigyOTUpO2ZpPXc1Llo2KDMwNyk7cGk9dzUuZjYoMjUxKTtfaT13NS5mNig0MTkpO2xpPXc1LmY2KDMxKTtkaT13NS5aNigyNzQpO3ZpPXc1LmY2KDQ0Nik7Ymk9dzUuWjYoMTYzKTttaT13NS5mNig5NCk7Z2k9dzUuWjYoMjIwKTt5aT13NS5aNigzNTQpO2tpPXc1Llo2KDE4Nik7d2k9dzUuZjYoNDEyKTt4aT13NS5mNig0NDcpO09pPXc1Llo2KDQwNCk7Q2k9dzUuZjYoNTIpO0VpPXc1Llo2KDY4KTtQaT13NS5mNigzNSk7VGk9dzUuZjYoNTYpO0FpPXc1LmY2KDEwMyk7Rmk9dzUuWjYoMzc5KTtTaT13NS5mNig0NTEpO2ppPXc1Llo2KDQ3NSk7TGk9dzUuWjYoMjEpO3ppPXc1LmY2KDE3MSk7Qmk9dzUuZjYoMTMxKTtJaT13NS5mNig0ODgpO01pPXc1LmY2KDE4MCk7V2k9dzUuWjYoNDQ1KTtEaT0vYnV0dG9ufGlucHV0L2k7VWk9dzUuWjYoMTM0KTtSaT13NS5mNigyMjgpO05pPXc1LmY2KDc4KTtIaT13NS5aNig1NCk7cWk9dzUuWjYoMTY3KTtKaT13NS5mNig0NjUpO1ZpPXc1Llo2KDMzNSk7JGk9dzUuZjYoMTY5KTtRaT13NS5mNigzNjgpO0dpPXc1LmY2KDI4Nyk7WWk9dzUuWjYoMzQ4KTtLaT13NS5mNigzMDEpO1ppPXc1LmY2KDQ0KTtYaT13NS5mNigyNjQpO3RuPXc1LmY2KDc3KTtlbj13NS5mNig0NjApO25uPXc1LmY2KDMzNyk7cm49dzUuWjYoMTU3KTtvbj13NS5aNigzMjUpO3NuPXc1LmY2KDIzNyk7YW49dzUuZjYoNDg2KTtjbj13NS5mNigxNTUpO3VuPXc1Llo2KDEwNCk7aG49dzUuWjYoMzU2KTtmbj13NS5aNig0OCk7cG49dzUuZjYoMjQyKTtfbj13NS5mNig0MDApO2xuPXc1Llo2KDI2NSk7ZG49dzUuZjYoMjg0KTt2bj13NS5aNigyODgpO2JuPXc1LmY2KDQzOSk7bW49dzUuWjYoMzQxKTtnbj13NS5aNigyMDMpO3luPXc1LmY2KDIxNyk7a249dzUuWjYoMzIxKTt3bj13NS5mNig0MzIpO3huPXc1LmY2KDIyKTtPbj02NDc9PSg0OTguMjUsMjAwKT8oMS42OWUrMyw0NjkpOnc1LmY2KDk2KTtDbj13NS5mNigzODMpO0VuPXc1LmY2KDM1OSk7UG49dzUuWjYoMzUwKTtUbj0vXk9wZXJhXC8uKj9QcmVzdG9cLy4qP1ZlcnNpb25cLyhbXGRcLl0rKS9pO0FuPXc1Llo2KDE5MSk7Rm49dzUuZjYoNDQ4KTtTbj13NS5mNigyNDQpO2puPXc1Llo2KDIzMSk7TG49dzUuZjYoMTIwKTt6bj13NS5mNig0NTApO0JuPXc1Llo2KDExOCk7SW49dzUuZjYoNik7TW49dzUuWjYoNzUpO1duPXc1LmY2KDEyMyk7RG49dzUuWjYoMzA0KTtVbj0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO1JuPXc1LmY2KDQ4NCk7Tm49dzUuZjYoMTk2KTtIbj13NS5mNigyMjYpO3FuPXc1LmY2KDM1Myk7Sm49dzUuWjYoMTgpO1ZuPXc1LmY2KDE2OCk7JG49dzUuZjYoMzE0KTtRbj13NS5aNig0NzEpO0duPXc1LmY2KDQ1OSk7WW49dzUuZjYoMzE3KTtLbj13NS5mNigyNDkpO1puPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1huPXc1LmY2KDE0NSk7dHI9dzUuWjYoMjQwKTtlcj13NS5mNigxOSk7aXI9dzUuWjYoNDg5KTtucj13NS5aNigyNzYpO3JyPXc1LmY2KDQ4Mik7b3I9dzUuZjYoNDY2KTtzcj13NS5aNigyNzApO2FyPXc1Llo2KDE0Nyk7Y3I9dzUuZjYoMjQpO3VyPXc1LmY2KDgzKTtocj13NS5aNigyNzkpO2ZyPXc1Llo2KDQzKTtwcj13NS5mNig0MjApO19yPXc1LmY2KDQ2Mik7bHI9L2Nocm9tZXxjcmlvcy87ZHI9dzUuWjYoNDExKTt2cj0vIy4qJC87YnI9dzUuZjYoMTU5KTttcj13NS5aNigwKTtncj0vKGNvbXBhdGlibGV8d2Via2l0KS87eXI9L0Z4aU9TXC8oW1xkXC5dKykvaTtrcj13NS5mNig1OSk7d3I9dzUuWjYoMzgpO3hyPXc1LmY2KDE5OCk7T3I9dzUuZjYoMTApO0NyPXc1LmY2KDQ2NCk7RXI9dzUuWjYoMTE2KTtQcj13NS5mNigzNjkpO1RyPXc1LmY2KDEyMSk7QXI9L21zaWV8dHJpZGVudFwvLztGcj13NS5mNigyNTYpO1NyPXc1LmY2KDQ3MCk7anI9dzUuZjYoMjkzKTtMcj13NS5mNig4Nyk7enI9L2Nocm9tZXxvcGVyYXxlZGdlfGNyaW9zfG9waW9zfGZ4aW9zfHVjL2k7QnI9dzUuWjYoMjUyKTtJcj13NS5aNigxMDgpO01yPXc1LmY2KDkxKTtXcj13NS5mNigyKTtEcj13NS5mNigyNjgpO1VyPXc1Llo2KDI3OCk7UnI9dzUuWjYoMzI2KTtOcj13NS5mNig5KTtIcj13NS5mNigxMzIpO3FyPXc1Llo2KDMyNCk7SnI9LyhhbmRyb2lkfGJiXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcGFkfGlyaXN8a2luZGxlfEFuZHJvaWR8U2lsa3xsZ2UgfG1hZW1vfG1pZHB8bW1wfG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyAoY2V8cGhvbmUpfHhkYXx4aWluby9pO1ZyPSgyNDk2LDg0OTUpIT05NzY/dzUuZjYoMjk3KTohITA7JHI9dzUuWjYoNDI2KTtRcj13NS5mNigyMjUpO0dyPXc1LmY2KDE4OCk7WXI9dzUuZjYoNDMxKTtLcj13NS5mNigyNTApO1pyPXc1Llo2KDI2MSk7WHI9dzUuZjYoMTc2KTt0bz13NS5mNigyNSk7ZW89dzUuWjYoMTk1KTtpbz13NS5mNigzMjgpO25vPXc1Llo2KDQwOSk7cm89dzUuZjYoMzQ5KTtvbz13NS5aNigzMjIpO3NvPXc1Llo2KDMxNik7YW89dzUuWjYoMzg1KTtjbz13NS5mNigxMTMpO3VvPXc1LmY2KDQ3NCk7aG89dzUuWjYoMjY3KTtmbz13NS5mNigyNjYpO3BvPXc1Llo2KDQwNyk7X289dzUuWjYoNjMpO2xvPXc1Llo2KDM2Nyk7dm89L3dlYmtpdC87Ym89dzUuWjYoNDUyKTttbz0vc2FmYXJpLztnbz13NS5aNig5Myk7eW89L29wZXJhfG9wcnxvcGlvc1wvLztrbz13NS5aNigzMzEpO3dvPXc1LmY2KDI2KTt4bz13NS5aNigxODIpO09vPXc1LmY2KDM4MCk7Q289dzUuWjYoMTEwKTtFbz13NS5mNigxMTIpO1BvPXc1LmY2KDMwNSk7VG89dzUuZjYoNzQpO0FvPXc1LmY2KDEwMik7Rm89dzUuZjYoNDc4KTtTbz0vYW5kcm9pZC87am89dzUuZjYoMzkxKTtMbz13NS5aNigzMDYpO3pvPXc1LmY2KDQwNSk7Qm89dzUuWjYoOTkpO0lvPXc1Llo2KDM5Nik7TW89dzUuWjYoNDQwKTtXbz13NS5mNig2Nyk7RG89dzUuWjYoNDAxKTtVbz13NS5aNigxNTQpO1JvPXc1LmY2KDI4OSk7Tm89dzUuWjYoMzkzKTtIbz13NS5mNig3OSk7cW89dzUuWjYoMTQwKTtKbz13NS5aNigzNzIpO1ZvPXc1Llo2KDQyMik7JG89dzUuZjYoNDQ5KTtRbz13NS5aNigzOTUpO0dvPXc1Llo2KDIwNik7WW89dzUuWjYoMjQzKTtLbz13NS5mNig2Mik7Wm89dzUuWjYoNDg1KTtYbz13NS5mNigxMzApO3RzPXc1Llo2KDE1Nik7ZXM9dzUuZjYoMjAxKTtpcz13NS5aNigzNjEpO25zPXc1LmY2KDMxNSk7cnM9dzUuWjYoMTIyKTtvcz13NS5mNig3MCk7c3M9dzUuZjYoMjU3KTthcz13NS5aNig0MjUpO2NzPXc1LmY2KDMzMCk7dXM9dzUuZjYoNzMpO2hzPXc1LmY2KDMwMyk7ZnM9dzUuWjYoMTAwKTtwcz13NS5mNigzNzQpO19zPXc1Llo2KDY2KTtscz0oODI2LjA2LDk5Ny4yKSE9PSgyNjIuNzksNzAwLjQpP3c1LmY2KDE3OSk6KG81LHc1Llo2KDM2KSk7ZHM9dzUuWjYoMjIzKTt2cz13NS5mNigxMTkpO2JzPXc1Llo2KDMwOCk7bXM9dzUuZjYoNDcpO2dzPXc1Llo2KDMxOSk7eXM9dzUuZjYoMTgxKTtrcz13NS5mNigzNDUpO3dzPXc1Llo2KDE1KTt4cz0vXigjfGphdmFzY3JpcHQpL2k7T3M9dzUuWjYoMzY2KTtDcz13NS5aNigxOTkpO0VzPXc1Llo2KDM4NCk7UHM9dzUuZjYoNDA2KTtUcz13NS5mNig0MjkpO0FzPXc1LmY2KDI0Nyk7RnM9dzUuZjYoNDQzKTtTcz13NS5mNigzMzgpO2pzPS8oPzpGaXJlZm94fENocm9tZSlcLyhbXGRcLl0rKSg/OiR8XHN8XC98XCkpKy9pO0xzPXc1Llo2KDM3MCk7enM9dzUuZjYoMzEwKTtCcz13NS5aNigzODYpO0lzPXc1Llo2KDI5NCk7TXM9dzUuWjYoMjgzKTtXcz13NS5aNigzODcpO0RzPXc1LmY2KDM5KTtVcz13NS5aNigxMDYpO1JzPXc1LmY2KDIwMik7TnM9dzUuWjYoMzExKTtIcz13NS5mNig0MzgpO3FzPXc1LmY2KDcxKTtKcz13NS5mNigxMzcpO1ZzPXc1Llo2KDI3KTskcz13NS5aNig4NCk7UXM9L18vZztHcz13NS5aNigxNTgpO1lzPXc1Llo2KDE5Mik7S3M9dzUuZjYoNDIzKTtacz13NS5mNigzMzkpO1hzPXc1Llo2KDE1MCk7dGE9dzUuWjYoMTQyKTtlYT13NS5mNig0KTtpYT13NS5aNig0MTApO25hPXc1LmY2KDIzNik7cmE9dzUuZjYoNDAyKTtvYT13NS5mNigyMTQpO3NhPXc1Llo2KDQxNyk7YWE9dzUuZjYoMTg0KTtjYT13NS5aNigxOTcpO3VhPXc1LmY2KDIzMyk7aGE9dzUuZjYoMzApO2ZhPS9saW51eC87cGE9dzUuWjYoMjgyKTtfYT0vb3BlcmEvO2xhPXc1Llo2KDM2NCk7ZGE9dzUuWjYoMTczKTt2YT13NS5aNigzMDApO2JhPXc1LmY2KDIzNSk7bWE9L2VkZ2V8b3ByXC8vO2dhPXc1LmY2KDI4NSk7eWE9dzUuZjYoNDYpO2thPXc1Llo2KDEzKTt3YT13NS5aNigyMDUpO3hhPXc1LmY2KDIyNCk7T2E9dzUuZjYoMzQ0KTtDYT13NS5aNigyMTMpO0VhPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtQYT13NS5mNigxMjYpO1RhPXc1Llo2KDExNCk7QWE9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO0ZhPXc1LmY2KDM5Mik7U2E9dzUuWjYoNjkpO2phPXc1LmY2KDMpO0xhPXc1LmY2KDQ1KTt6YT13NS5mNigzMjMpO0JhPXc1LmY2KDEzOSk7SWE9dzUuWjYoMTI5KTtNYT13NS5mNig4KTtXYT13NS5mNig0Mik7RGE9dzUuZjYoMSk7VWE9dzUuWjYoODkpO1JhPXc1LmY2KDIwOSk7TmE9dzUuZjYoMjgpO0hhPXc1LmY2KDIxOSk7cWE9dzUuWjYoMjMwKTtKYT13NS5aNig4MSk7VmE9dzUuWjYoMzA5KTskYT13NS5mNigzNDcpO1FhPXc1LmY2KDM4MSk7R2E9dzUuWjYoOTIpO1lhPXc1LmY2KDEyNSk7S2E9dzUuWjYoMzIpO1phPXc1LmY2KDM5MCk7WGE9dzUuZjYoNDY4KTt0Yz13NS5mNigzNik7ZWM9dzUuZjYoMzk3KTtpYz13NS5aNig0ODApO25jPXc1LmY2KDIyMik7cmM9dzUuZjYoNDU3KTtvYz13NS5aNigzNTIpO3NjPXc1Llo2KDI5KTthYz0vaShQaG9uZXxQYWR8UG9kKS9pO2NjPXc1LmY2KDQzNCk7dWM9dzUuZjYoNDIxKTtoYz13NS5aNig0NzMpO2ZjPXc1LmY2KDE3MCk7cGM9dzUuZjYoMjYyKTtfYz13NS5aNigxNTEpO2xjPXc1LmY2KDQ5KTtkYz13NS5mNigyNTQpO3ZjPXc1LmY2KDQyOCk7YmM9dzUuZjYoMTUzKTttYz13NS5aNigyNjkpO2djPXc1Llo2KDU3KTt5Yz13NS5mNigzNTcpO2tjPS9UcmlkZW50XC8uKj9ydjooW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt3Yz13NS5aNig0NTMpO3hjPXc1Llo2KDQ3Nik7T2M9dzUuZjYoNDU0KTtDYz13NS5mNig0NTgpO0VjPXc1LmY2KDgwKTtQYz0vOlxkKyQvO1RjPXc1Llo2KDI3Mik7QWM9dzUuWjYoMzI3KTtGYz13NS5mNig0NzkpO1NjPXc1Llo2KDYxKTtqYz13NS5mNigyOTEpO0xjPXc1Llo2KDIzMik7emM9dzUuWjYoMTEpO0JjPXc1LmY2KDM0Nik7SWM9dzUuWjYoMTA1KTtNYz13NS5aNig0NzcpO1djPXc1Llo2KDQwKTtEYz13NS5aNig3Nik7VWM9dzUuWjYoMTYpO1JjPXc1Llo2KDIyNyk7TmM9dzUuWjYoMjA0KTtIYz13NS5mNigzNyk7IWZ1bmN0aW9uKHQseSxSdCxYZSxyaSx5aSxBaSxObixkcixVcixpbyxybyxDbyxHcyx6YyxVYyxxYyxKYyxWYywkYyl7InVzZSBzdHJpY3QiO3ZhciBRYyxHYyxZYyxLYyxaYyxYYyx0dSxldSxpdSxudSxydSxvdSxzdSxhdSxjdSx1dSxodSxmdSxwdSxfdSxsdSxkdSx2dSxidSxtdSxndSx5dSxrdSx3dSx4dSxPdSxDdSxFdSxQdSxUdSxBdSxGdTtydT10O3c1Llk0KDApO291PXc1LmM0KHVpLEdyLGJyLF9yLFllLFNpLFR0LGRuLFllLHUsbWksT3QsR3IsWWUsdXIpO3c1Llk0KDEpO3N1PXc1LnU0KGZlLFR0LEh0LG90LFR0KTt3NS5vNCgxKTthdT13NS51NChXaSxQZSxLLF9jLFBlKTt3NS5ZNCgyKTtjdT13NS5jNChydSxnaSk7dzUubzQoMik7dXU9dzUudTQocnUsWm8pO3c1Lm80KDMpO2h1PXc1LmM0KE9jLHJ1LEJpLFV0LEdyLEdyKTt3NS5vNCgyKTtmdT13NS51NChydSwkYSk7cHU9YW87X3U9eGk7bHU9THI7ZHU9bW47dnU9eVtmXVtxbytHcitDXVtYcytHcit0cytHcituY10oKTtidT17dW5kZXI6bzUsbmV3VGFiOm81fTttdT1udWxsO2d1PW81O3l1PSF7fTtrdT1mdW5jdGlvbigpe307dzUuWTQoNCk7d3U9dzUudTQoR3IsT3QsRXQpO3h1PXJpW3ZzK0dyK0FvXXx8e3NyYzpudWxsfTt3NS5vNCg0KTtPdT15W2ZdW3c1LmM0KGVvLEdyLGtyKV07Q3U9eXU7RXU9eXU7UHU9eXU7VHU9ZnVuY3Rpb24oKXt2YXIgRTksbzksdzk7dHJ5e0U5PTM2MDIzMDM0MztvOT01MDA4ODEwMDM7dzk9Mjtmb3IodmFyIGI1PTE7dzUuTDEoYjUudG9TdHJpbmcoKSxiNS50b1N0cmluZygpLmxlbmd0aCw1ODI0MykhPT1FOTtiNSsrKXtyZXR1cm4geVtwXT09PXlbcXJdfHwheVtwXVttcl1bRWldWyhYcy1HciklaF0oKSE9VGM/eVtwXTp5W3FyXTt3OSs9Mjt9aWYodzUuTDEodzkudG9TdHJpbmcoKSx3OS50b1N0cmluZygpLmxlbmd0aCw1MTUyOSkhPT1vOSl7cmV0dXJuIHlbcF0hPT15W3FyXSYmdHlwZW9mIHlbcF1bbXJdW0VpXVtYcytHcitoXSgpPT09VGM/eVtwXTp5W3FyXTt9fWNhdGNoKHQpe3ZhciBBOSxJOSxLOTtBOT0yMjIyMDY4MDc7STk9NDU1MTUwMTA4O0s5PTI7Zm9yKHZhciBROT0xO3c1LkwxKFE5LnRvU3RyaW5nKCksUTkudG9TdHJpbmcoKS5sZW5ndGgsNjg5NDApIT09QTk7UTkrKyl7cmV0dXJuIFB1PWd1LHlbcXJdO0s5Kz0yO31pZih3NS5MMShLOS50b1N0cmluZygpLEs5LnRvU3RyaW5nKCkubGVuZ3RoLDU2NzU3KSE9PUk5KXtyZXR1cm4gUHU9Z3UseVtxcl07fX19KCk7QXU9VHVbSmFdW1FhXTtGdT1mdW5jdGlvbigpe3ZhciB0O3RyeXt0PVR1W0VpXVt1bl07fWNhdGNoKHQpe31yZXR1cm4hUHUmJnR8fChidT17bmV3VGFiOmd1LHVuZGVyOnl1fSx0PXJpW2lhXSksdDt9KCk7S2M9e3Q6W10sbjpmdW5jdGlvbih0KXt2YXIgSDcsdjcsVDc7SDc9MTg2NDAwNjYwNDt2Nz03MzE4NDIzNTE7VDc9Mjtmb3IodmFyIG83PTE7dzUuZDEobzcudG9TdHJpbmcoKSxvNy50b1N0cmluZygpLmxlbmd0aCw5MTY5NikhPT1INztvNysrKXt0eXBlb2YgeVt3c10hPT1nZSYmeVt3c11bT29dJiZObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO1Q3Kz0yO31pZih3NS5kMShUNy50b1N0cmluZygpLFQ3LnRvU3RyaW5nKCkubGVuZ3RoLDI0OTc5KSE9PXY3KXt+eVt3c109PT1nZXx8eVt3c11bT29dfHxObltvYV1bQ2ldKHlbd3NdW09vXSxjb25zb2xlLHQpO319LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtwaV07dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW0tuXShBaVtYdF1bcW5dW0NpXShhcmd1bWVudHMsMSkpO3RoaXMudFtNcl0oZSk7R2MuaSgpJiZ0aGlzLm4oZSk7fX07ZXU9e3M6ZnVuY3Rpb24oKXtpZih0aGlzLm89PT1tdSl0cnl7eVthcytHcit0aV1bbGkrR3IrRXJdKHJ1LDEpO3lbYXMrR3IrdGldW3huK0dyK0VyXShydSk7dGhpcy5vPWd1O31jYXRjaCh0KXt2YXIgdzcscDcsYjk7dzc9LTE2MTA5ODQyMzA7cDc9OTg2NDU4NDQ2O2I5PTI7Zm9yKHZhciBtOT0xO3c1LmQxKG05LnRvU3RyaW5nKCksbTkudG9TdHJpbmcoKS5sZW5ndGgsODg3MTMpIT09dzc7bTkrKyl7dGhpcy5vPXl1O2I5Kz0yO31pZih3NS5MMShiOS50b1N0cmluZygpLGI5LnRvU3RyaW5nKCkubGVuZ3RoLDMzNDE0KSE9PXA3KXt0aGlzLm89eXU7fXRoaXMubz15dTt9cmV0dXJuIHRoaXMubzt9LHU6ZnVuY3Rpb24odCl7dGhpcy5zKCk/eVthcytHcit0aV1beG4rR3IrRXJdKHQpOnR1LnUodCk7fSxjOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/eVthcytHcit0aV1bYWErR3IrRXJdKHQpOnR1LmModCk7fWNhdGNoKHQpe3JldHVybiBtdTt9fSxvOm11LGE6ZnVuY3Rpb24odCxlKXt0aGlzLnMoKT95W2FzK0dyK3RpXVtsaStHcitFcl0odCxlKTp0dS5hKHQsZSk7fX07dHU9e3U6ZnVuY3Rpb24odCl7dGhpcy5hKHQsMCxuZXcgSmMoMCkpO30sYzpmdW5jdGlvbih0KXt2YXIgZTt3NS5ZNCg1KTtlPXJpW050XVtiY10obmV3IFVyKHc1LnU0KGVyLEdyLEdyLGV0LHNjLHQsR3IsR3IsdHQsdWMsR3IsR3IsSm8sR3IpLGxzKSk7cmV0dXJuIGU/VmMoZVswXVtDcl0oR3IrZXQrR3IpWzFdKTptdTt9LGE6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9aXx8R3I7cyYmKHR5cGVvZiBzPT09V3Q/KG89bmV3IEpjKCkpW2xpK0dyK0hdKG9bYWErR3IrSF0oKSsxZTMqcyk6bz1zLHM9R3IrZXIrZmkrZXQrR3Irb1tYcytHcitWcitHcit4YytHcitXK0dyK2hdKCkpO3JpW050XT10KyhHcitldCtHcikrJGMoR3IrZSkrcysocj9HcitlcitkcytldCtHcityOkdyKSsoR3IrZXIrQXQrZXQrR3IpKyhufHxHcitQZStHcik7fX07WmM9e3A6ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W3BpXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxXOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjt0cnl7cmV0dXJuIG49dFthYStHcitHaV0oZSksdHlwZW9mIGkhPT1UYz95dTohIW5ldyBVcihGbitpK01zLGxzKVtqY10obik7fWNhdGNoKHQpe3JldHVybiB5dTt9fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgeS5qUXVlcnkuZm4ub249PT1aczt9Y2F0Y2godCl7cmV0dXJuIHl1O319LEc6ZnVuY3Rpb24odCl7cmV0dXJuKHQ/bmV3IEpjKHQpOm5ldyBKYygpKVthYStHcitIXSgpO30sTTpmdW5jdGlvbih0KXt2YXIgbTAsQTAsSTAsZSxsNyxjNyxWNzttMD0tMTc4MjYxMjU4MTtBMD0tMTYzMzI0MDE2NDtJMD0yO2Zvcih2YXIgcjA9MTt3NS5MMShyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODU4KSE9PW0wO3IwKyspe0kwKz0yO31pZih3NS5MMShJMC50b1N0cmluZygpLEkwLnRvU3RyaW5nKCkubGVuZ3RoLDg0OTA2KSE9PUEwKXt9dHJ5e2w3PS0xMjU4NTI0ODY5O2M3PTc3MTI1MDQ2ODtWNz0yO2Zvcih2YXIgeTc9MTt3NS5kMSh5Ny50b1N0cmluZygpLHk3LnRvU3RyaW5nKCkubGVuZ3RoLDEwMjkyKSE9PWw3O3k3KyspeyhlPXRbSmFdW1FhXShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7VjcrPTI7fWlmKHc1LmQxKFY3LnRvU3RyaW5nKCksVjcudG9TdHJpbmcoKS5sZW5ndGgsMjYwMTcpIT09YzcpeyhlPXRbSmFdW1FhXSgoVWEtVnQpL2NpKSlbYm9dKCk7ZVtJb10oKTt9fWNhdGNoKHQpe30oZT1BdShVYStWdCtjaSkpW2JvXSgpO2VbSW9dKCk7fSxUOmZ1bmN0aW9uKHQpe3QmJihUdVtFaV09dCk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVt5cixUbixFYSxCZSxqcyxabixqdCxrYyx3ZV0sbj0wO248aVtwaV07bisrKWlmKGU9aVtuXVtqY10odnUpKXtyZXR1cm4gdD9VYyhlWzFdLDEwKTplWzFdW1pdKFFzLEdyK1R0K0dyKTt9cmV0dXJuIG11O30sTDpmdW5jdGlvbih0LGUpe3c1Llk0KDcpO3JldHVybiB3NS51NChZZSxlcixHcix0LGllLHlzLEdyLGUsR3IsVmUsVnQsR3IpO30sXzpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUTAsZTAsajA7UTA9LTE2NDA5MDY2NDA7ZTA9MzYxNTQ4MTI4O2owPTI7Zm9yKHZhciB0MD0xO3c1LmQxKHQwLnRvU3RyaW5nKCksdDAudG9TdHJpbmcoKS5sZW5ndGgsMzk3NjcpIT09UTA7dDArKyl7aT15O3c1Llk0KDQpO249dFtDcl0odzUudTQoR3IsVHQsR3IpKTtmb3IoZT0wO2U8bltwaV07ZSsrKXtpPWlbbltlXV07fXJldHVybiBpO2owKz0yO31pZih3NS5MMShqMC50b1N0cmluZygpLGowLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjE4KSE9PWUwKXtpPXk7dzUuWTQoNik7bj10W0NyXSh3NS51NChUdCxHcixHcikpO2ZvcihlPTQ7ZTw9bltwaV07ZS0tKXtpPWlbbltlXV07fXJldHVybiBpO319LFM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbyxzMCxEMCxXMCxVMCx4MCx6MDtvPXkualF1ZXJ5fHxudWxsO2lmKHQmJnRbQW5dKXtyZXR1cm4gZ3U7fWlmKCFvKXtyZXR1cm4geXU7fXRyeXtzMD0tMTYxNTA0NTA7RDA9LTE5OTUwMzAzNTQ7VzA9Mjtmb3IodmFyIGMwPTE7dzUuZDEoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5Nzc5KSE9PXMwO2MwKyspe2lmKChlPShvKHQpW2llXShHYSkmJm8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9VzArPTI7fWlmKHc1LkwxKFcwLnRvU3RyaW5nKCksVzAudG9TdHJpbmcoKS5sZW5ndGgsMjI1MTYpIT09RDApe2lmKChlPShvKHQpW2llXShHYSl8fG8uaih0LEdhKSlbZ3NdKVtwaV0pe3JldHVybiBndTt9fX1jYXRjaCh0KXt9dHJ5e1UwPS0xMjgxMDM4MTgyO3gwPS01MjI2MTY2MzI7ejA9Mjtmb3IodmFyIGkwPTE7dzUuTDEoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCwzMjg1OSkhPT1VMDtpMCsrKXtmb3IoZT1vKHJpW1FyXSlbaWVdKEdhKVtnc10saT00O2k+ZVtwaV07aS0tKWZvcihyPW8oZVtpXVtvZV0pLG49NztuPj1yW3BpXTtuLS0paWYocltuXT09dCl7cmV0dXJuIGd1O316MCs9Mjt9aWYodzUuTDEoejAudG9TdHJpbmcoKSx6MC50b1N0cmluZygpLmxlbmd0aCw4ODE3MikhPT14MCl7Zm9yKGU9byhyaVtRcl0pW2llXShHYSlbZ3NdLGk9NDtpPmVbcGldO2ktLSlmb3Iocj1vKGVbaV1bb2VdKSxuPTc7bj49cltwaV07bi0tKWlmKHJbbl09PXQpe3JldHVybiBndTt9fWZvcihlPW8ocmlbUXJdKVtpZV0oR2EpW2dzXSxpPTA7aTxlW3BpXTtpKyspZm9yKHI9byhlW2ldW29lXSksbj0wO248cltwaV07bisrKWlmKHJbbl09PT10KXtyZXR1cm4gZ3U7fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sQzpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO289WmMuTyhvNSk7cmV0dXJuIG49b1t0bytHcit5YV1bbXJdW1VzK0dyK0NuXShkZSksbltPXT1yYStQZStDdCxuW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoSmErVHQrX3QrWWUrR3IrZXQrR3IrWWUrSmErVHQrcCtZZStHcitldCtHcitZZStKYStUdCt1cytHcitDbitZZStHcitldCtHcitZZStkK2VyK0dyKSsoSmErVHQrJG4rWWUrR3IrZXQrR3IrWWUrWnMrUit6K1ZlK0dyK1llK3NvK1ZlK0dyK1llK0NlK1ArR3IrWWUrR3Ird24rR3IpKyh1YStZZStCcytHcitYbytZZStHcitldCtHcitZZStKYStUdCtRYStSK3orVmUrR3IrWWUrc28rVmUrR3IrWWUrQ2UrUCtHcitlcitHcikrKFdyK1llK0dyK3duK0JzK0dyK1hvK1R0K1dvK1llK0dyK2V0K0dyK1llK2QrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSsoTnIrWWUrQnMrR3IrWG8rZXIrR3IpKyhHcitEcitHcitlcitHciksb1t0bytHcit5YV1bbXJdW1FyXVtJdCtHcitXZV0obikscj1vW3RvK0dyK3lhXS5ta3AodCxlLGkpLFpjLlAobykscjt9LEI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLG8scztyPTA7bz1ufHwxMDtzPXQ7dHJ5e2Zvcig7cyYmcisrPG87KXtpZih0eXBlb2YgZT09PVRjJiYoc1tTYytHcittY109PT1lfHxaYy5JKHMsZSkpfHx0eXBlb2YgZT09PWFyJiZzPT09ZSl7cmV0dXJuIHM7fXc1Llk0KDQpO3M9c1t3NS51NChfdCxHcixpKV07fX1jYXRjaCh0KXt9cmV0dXJuIHl1O30sRjpmdW5jdGlvbih0KXt2YXIgZTtlPVJ0W1RlXTtyZXR1cm4gdHlwZW9mIHQhPT1nZSYmKGU9KGN0W2pjXSh0KXx8W0dyLEdyXSlbMV0pLGVbWl0oUGMsR3IpO30seDpmdW5jdGlvbih0KXtyZXR1cm4geWlbWHRdW1hzK0dyK2hdW0NpXSh0KT09PUdyK0pvK2FyK1llK2JuK3R0K0dyO30sazpmdW5jdGlvbih0KXt2YXIgZSxpLG4sUjAsUDAsSjA7aT1bXTtuPVpjLnYoKTt0cnl7UjA9LTE2Mjc2MTY5Mzc7UDA9LTIwMDI5NzgxNzY7SjA9Mjtmb3IodmFyIEIwPTE7dzUuTDEoQjAudG9TdHJpbmcoKSxCMC50b1N0cmluZygpLmxlbmd0aCw3NjkxMCkhPT1SMDtCMCsrKXtmb3IoZSBpbiBuKXt+dFtlXSE9Z2V8fGlbTXJdKGUvKChHci1ldCklR3IpLXRbZV0pO31KMCs9Mjt9aWYodzUuTDEoSjAudG9TdHJpbmcoKSxKMC50b1N0cmluZygpLmxlbmd0aCw4NjExMCkhPT1QMCl7Zm9yKGUgaW4gbil7fnRbZV0hPWdlfHxpW01yXShlLygoR3ItZXQpJUdyKS10W2VdKTt9fWZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09Z2UmJmlbTXJdKGUrKEdyK2V0K0dyKSt0W2VdKTt9fWNhdGNoKHQpe0tjLmUodCk7fXc1Llk0KDQpO3JldHVybiBpW05pXSh3NS5jNChHcixWZSxHcikpO30sUjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5CKHQsT24pO30seTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXt9LGk9MDtpPGFyZ3VtZW50c1twaV07aSsrKWZvcih0IGluIGFyZ3VtZW50c1tpXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0oYXJndW1lbnRzW2ldLHQpJiYoZVt0XT1hcmd1bWVudHNbaV1bdF0pO31yZXR1cm4gZTt9LFY6ZnVuY3Rpb24odCxlKXt2YXIgSjEsWDEsQjE7SjE9NDUyODczNzI5O1gxPTEyNzMxMDM4NTg7QjE9Mjtmb3IodmFyIE4xPTE7dzUuZDEoTjEudG9TdHJpbmcoKSxOMS50b1N0cmluZygpLmxlbmd0aCw1NTI1MSkhPT1KMTtOMSsrKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpKihlLXQpKSt0O0IxKz0yO31pZih3NS5kMShCMS50b1N0cmluZygpLEIxLnRvU3RyaW5nKCkubGVuZ3RoLDI4MzUxKSE9PVgxKXtyZXR1cm4gZHJbQWNdKGRyW01uXSgpJShlL3QpKSV0O319LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3c1Llk0KDgpO2U9dzUuYzQodHlwZW9mIHQsYXIpO2k9dDt3NS5vNCg0KTtuPXJpW1VzK0dyK0NhXSh3NS51NChTbixHcix1bykpO25bTHMrR3IrU24rR3IrQ2FdKGdzLGd1LGd1LHksMCwwLDAsMCwwLGd1LHl1LHl1LGd1LDAsbXUpO2V8fChpPVpjLnooVSx7aHJlZjp0fHxpZStWdCtyYStQZStqbytWZStHcit1aStkZSt1citKYStUdCtJbytSK0dyK1ArR3IrZXIrR3IrdWkrR3IrUGUrZGUrdXIrR3J9KSxyaVtRcl1bSXQrR3IrV2VdKGkpKTtpW2duK0dyK0NhXShuKTtlfHxaYy5QKGkpO30sejpmdW5jdGlvbih0LGUsaSl7dmFyIG4scjtyPXJpW1VzK0dyK0NuXSh0KTtmb3IobiBpbiBlKXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShlLG4pJiZyW2xpK0dyK0dpXShuLGVbbl0pO31yZXR1cm4gaSYmKHJbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPWkpLHI7fSxZOmZ1bmN0aW9uKCl7dHJ5e3c1Lm80KDQpO3JldHVybiEhT3VbdzUuYzQoZW4sUGUsTWMpXVt3NS51NCgkaSxHcixXcyldO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sbDpmdW5jdGlvbih0KXt2YXIgZSxpLFk3LGY3LHM3O2U9WmMuXyh0KTt3NS5ZNCg0KTtpPXRbWl0oQWEsdzUudTQoR3Isem8scSkpO3RyeXtZNz0tMTYzMTA2MDI3MDtmNz0xOTgxNTM2MDYxO3M3PTI7Zm9yKHZhciBXNz0xO3c1LkwxKFc3LnRvU3RyaW5nKCksVzcudG9TdHJpbmcoKS5sZW5ndGgsMTYwMikhPT1ZNztXNysrKXtyZXR1cm4rbmV3IFVyKChacy9ZZS1HcikvIGkveHIsUnMpW2lyXShlW1hzJUdyL2hdKCkpO3M3Kz0yO31pZih3NS5MMShzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDExNjM3KSE9PWY3KXtyZXR1cm4hbmV3IFVyKFpzK1llK0dyK2kreHIsUnMpW2lyXShlW1hzK0dyK2hdKCkpO319Y2F0Y2godCl7cmV0dXJuIHRbWHMrR3IraF0oKVtMK0dyK1dhXShrbytZZStycytZZStVK1llK1pzKT4tMT9ndTpYYy5kP2d1Onl1O319LHY6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHIsbzt3NS5vNCg0KTtlPXlbdzUuYzQoUGEsR3IsZyldO3c1Llk0KDQpO2k9eVt3NS5jNChQYSxHcix3YyldO249eVtPaStHcitVZV18fHlbT2krR3IrV25dfHwwO3I9eVtPaStHcit4b118fHlbT2krR3IrQ2NdfHwwO289e307cmV0dXJuIG9bb2NdPWUsb1tLYV09aSxvW0hpXT1uLG9bcF09cixvW29yXT0wLG9bRWldPTEsb1tTcl09MSxvW09yXT0xLG8ucmVzaXphYmxlPTEsb1tNZV09MSxYYy5iJiYob1tLYV0rPVhjLm0/NDY6NTIpLFhjLmcmJihvW29jXS09NSxvW0thXS09NCksdHlwZW9mIHQ9PT1hciYmKG89WmMueShvLHQpKSxvO30sTzpmdW5jdGlvbih0KXt2YXIgZTtlPXJpW1VzK0dyK0NuXShjbik7cmV0dXJuIGVbeGVdW3h0XT1YaSx0JiZyaVtRcl1bSXQrR3IrV2VdKGUpLGU7fSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0W1NjK0dyK21jXT09PUZjK0dyK1ZyK0dyK3hjK0dyK3hjK0dyK2ZjK0dyK2d0fHx0W1NjK0dyK21jXT09PXZhK0dyK2d0K0dyK210K0dyK1ZyK0dyK3hjJiZVbltpcl0odFthYStHcitHaV0oTykpfHx0aGlzLkIodCxGYytHcitWcitHcit4YytHcit4YytHcitmYytHcitndCkhPT15dTt9LFA6ZnVuY3Rpb24odCl7dCYmdFtfdCtHcitpXSYmdFtfdCtHcitpXVt4bitHcitXZV0odCk7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixvO2lmKHR5cGVvZiBlIT09VGMpe3JldHVybiB5dTt9aWYodHlwZW9mIHJpW2VlK0dyK3Z0K0dyK21dPT09WnMpdHJ5e3I9dFtfdCtHcitpXVtlZStHcit2dCtHcittXShlKXx8eS5qUXVlcnkoZSk7fWNhdGNoKHQpe31lbHNlIGlmKFpjLkEoKSl0cnl7cj15LmpRdWVyeShlKTt9Y2F0Y2godCl7fWlmKHIpZm9yKG89MDtvPHJbcGldO28rKylpZihyW29dPT09dCl7cmV0dXJuIGd1O31zd2l0Y2goZVswXSl7Y2FzZSBHcitUdCtHcjpuPVtsbyxlW2ZzXSgxKV07YnJlYWs7Y2FzZSBHcitzZStHcjpuPVtWYSxlW2ZzXSgxKV07fXJldHVybiBuP3RoaXMuVyh0LG5bMF0sblsxXSk6eXU7fSxmOmZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiEoIXRba2ldW2VdfHwhdFtraV1bZV1bWW5dKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LE46ZnVuY3Rpb24odCl7dmFyIGU7ZT10aGlzLlIodCk7cmV0dXJuIGUmJmVbdW5dJiYheHNbaXJdKGVbdW5dKT9lW3VuXTp5dTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxhPXRbWHMrR3IraF0oKVtDcl0obnx8R3IrVHQrR3IpLGM9ZVtYcytHcitoXSgpW0NyXShufHxHcitUdCtHciksdT0wLGY9ZHJbQm9dKGFbcGldLGNbcGldKTt1PGYmJihyPVVjKGFbdV18fDAsMTApLG89VWMoY1t1XXx8MCwxMCkscWMocikmJihyPTApLHFjKG8pJiYobz0wKSxzPXI+bz8xOi0xLHI9PT1vKTt1Kyspe3M9MDt9c3dpdGNoKGkpe2Nhc2UgR3IrdXIrR3I6dzUubzQoOCk7cmV0dXJuIHc1LnU0KDEscyk7Y2FzZSBHcit1citHcitldCtHcjp3NS5ZNCg5KTtyZXR1cm4gdzUuYzQocywxKTtjYXNlIEdyK3VpK0dyOnc1Lm80KDEwKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK3VpK0dyK2V0K0dyOnc1Llk0KDExKTtyZXR1cm4gdzUuYzQoMSxzKTtjYXNlIEdyK2V0K0dyK2V0K0dyOmNhc2UgR3IrZXQrR3IrZXQrR3IrZXQrR3I6ZGVmYXVsdDp3NS5ZNCg4KTtyZXR1cm4gdzUudTQoMCxzKTt9fSwkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1wZVtDcl0oR3IpLGk9ZVtwaV0sbj0wLHI9R3I7bjx0O24rKyl7cis9ZVtkcltBY10oZHJbTW5dKCkqaSldO31yZXR1cm4gcjt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbYWErR3IrR2ldKGUpO31jYXRjaCh0KXtyZXR1cm4geXU7fX0sSDpmdW5jdGlvbih0LGUsaSl7dmFyIG47dzUubzQoMik7bj13NS5jNChoaSx0KTtyZXR1cm4gdHlwZW9mIHlbbl0hPT1nZSYmcm8oeVtuXSkseVtuXT1pbyhlLGkpO30sdzpmdW5jdGlvbigpe3JldHVybiBQdTt9LFU6ZnVuY3Rpb24odCl7cmV0dXJuIHRbU2MrR3IrbWNdPT09dmErR3IrZ3QrR3IrbXQrR3IrVnIrR3IreGMmJm5lW2lyXSh0W2FhK0dyK0dpXShPKSl8fHRbU2MrR3IrbWNdPT09cGErR3IrT24rR3IrRmMrR3IrUHMrR3IrcGE7fX07aXU9e3R0OmZ1bmN0aW9uKHQsZSl7dmFyIGkscTUsbTUsQTU7dHJ5e3E1PS0xNDE1MjczNDIzO201PS0zMzc1MDc5MjY7QTU9Mjtmb3IodmFyIEs1PTE7dzUuZDEoSzUudG9TdHJpbmcoKSxLNS50b1N0cmluZygpLmxlbmd0aCwzNzU1NSkhPT1xNTtLNSsrKXtyZXR1cm4gZXx8KGk9cmlbKHdyLUdyKSVqbipHcipMY10odFtIYyVHci9VZV0sdFtIYy9Hci14b10pKT9pOnRbVGldJiZ0W1hzLUdyLUNuXSYmdFsoWHItR3IpJUNuXTtBNSs9Mjt9aWYodzUuTDEoQTUudG9TdHJpbmcoKSxBNS50b1N0cmluZygpLmxlbmd0aCw3MjUzNikhPT1tNSl7cmV0dXJuIGUmJihpPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXSx0W0hjK0dyK3hvXSkpP2k6dFtUaV18fHRbWHMrR3IrQ25dfHx0W1hyK0dyK0NuXTt9fWNhdGNoKHQpe3JldHVybiB5dTt9fSxYOmZ1bmN0aW9uKHQsZSxpLG4pe3JldHVybiB0eXBlb2YgdFtIbitHcitDYStHcitFbl09PT1acz90W0huK0dyK0NhK0dyK0VuXShlLGksbnx8e30pOnRbRmUrR3IrQ2FdKE5vK2UsaSk7fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXtpdS5aKHQsZSxyLG4pO2lbQ2ldKCk7fTtpdS5YKHQsZSxyLG4pO30sWjpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbeG4rR3IrQ2ErR3IrRW5dPT09WnM/dFt4bitHcitDYStHcitFbl0oZSxpLG58fHt9KTp0W0tpK0dyK0NhXShObytlLGkpO319OyEoWGM9e2l0OmZhW2lyXSh2dSksbnQ6c3RbaXJdKHZ1KSxtOmxlW2lyXSh2dSksZXQ6YWNbaXJdKHZ1KSxydDpTb1tpcl0odnUpLG90OnNpW2lyXSh2dSl8fEpyW2lyXSh2dSl8fHVlW2lyXSh2dVtmc10oMCw0KSksc3Q6dm9baXJdKHZ1KSxnOkFyW2lyXSh2dSkmJiFfYVtpcl0odnUpLGI6bHJbaXJdKHZ1KSYmIW1hW2lyXSh2dSksYXQ6bWVbaXJdKHZ1KSYmIWdyW2lyXSh2dSksY3Q6eFtpcl0odnUpLGQ6Rltpcl0odnUpLHV0OnlvW2lyXSh2dSksX3Q6bXUscHQ6WmMucShndSl8fG11LGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3QhPT1tdT90aGlzLl90OnRoaXMuX3Q9UWMuZHQoKSE9PXl1O30sSjpmdW5jdGlvbih0LGUpe3JldHVybiBaYy5KKFhjLmZ0LGUsdCk7fSxodDptb1tpcl0odnUpJiYhenJbaXJdKHZ1KSxmdDpaYy5xKHl1KXx8bXV9KS5ldHx8WGMuaHR8fFhjLmR8fFhjLmJ8fChYYy51dD1vNSk7KFljPWZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtuPWl8fHt9O25bel09ZTt0aGlzLnZ0KG4pO3RoaXMubXQuYnR8fCh0aGlzLm10LmJ0PXJ1K3QpO3RoaXMuZ3QoKTt9KVtYdF09e2t0OntUdDpndSxDdDptdSxqdDp5dSxFdDpHcitQZStHcixGdDprdSxMdDpndSxBdDp5dSxPdDpndSx4dDptdSxQdDpudWxsLGJ0Om11LHd0Om11LFN0Omt1fSxtdDp7fSx5dDpudWxsLHp0OlpjLnYoKSxCdDpaYy5wKFtbT3IsMF1dKSxJdDpaYy5wKFtbTWUsMV1dKSxNdDpaYy5wKFtbU3IsMV1dKSxXdDpaYy5wKFtbRWksMF0sW1NyLDBdXSksRHQ6WmMucChbW01lLDBdXSksVXQ6WmMucChbW1p0LDBdXSksUnQ6WmMucChbW0VpLDBdXSksc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LGd0OmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG47dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW3B1XT1beXUsZ3VdO25bX3VdPVt5dSx5dV07bltsdV09W2d1LGd1XTtuW2R1XT1bZ3UseXVdO2ZvcihpIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIF91O307ZT1YYy5sdCgpO2k9dChHYy5tdC4kdC5uZXdUYWIsR2MubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1wdSYmKG49aSk9PT1wdSYmKG49bHUpO1hjLm90JiYobj09PV91JiYobj1kdSksbj09PXB1JiYobj1sdSkpO3RoaXMueXQ9bjt9LEh0OmZ1bmN0aW9uKCl7dmFyIGswLG4wLEYwO2lmKHR5cGVvZiB0aGlzLm10Lnh0PT09WnMpdHJ5e3JldHVybiB0aGlzLm10Lnh0W0NpXSh0aGlzLHRoaXMubXQpW1hzK0dyK2hdKCk7fWNhdGNoKHQpe3JldHVybiBLYy5lKHQpLHl1O31rMD0tMTAwMjA0NzAxMztuMD0tMTY1MTM4NjMwNztGMD0yO2Zvcih2YXIgTTA9MTt3NS5MMShNMC50b1N0cmluZygpLE0wLnRvU3RyaW5nKCkubGVuZ3RoLDY4NDExKSE9PWswO00wKyspe3JldHVybiB0aGlzLm10Lnh0O0YwKz0yO31pZih3NS5kMShGMC50b1N0cmluZygpLEYwLnRvU3RyaW5nKCkubGVuZ3RoLDkwOTM5KSE9PW4wKXtyZXR1cm4gdGhpcy5tdC54dDt9fSxMdDpmdW5jdGlvbigpe3ZhciB0LGUsRzcsQzcsazcsVjAsdTAseTA7dD10aGlzLm10O2U9dC5PdCE9PU5zJiZ0Lk90IT09TmV8fHQuT3Q9PT1OcyYmWGMub3R8fHQuT3Q9PT1OZSYmIVhjLm90O3RyeXtHNz0tMTkzODMwODU3MjtDNz0tMTE3NzY0NDk2NDtrNz0yO2Zvcih2YXIgRjc9MTt3NS5kMShGNy50b1N0cmluZygpLEY3LnRvU3RyaW5nKCkubGVuZ3RoLDg5NDI0KSE9PUc3O0Y3Kyspe3R5cGVvZiB0Lkx0PT09WnM/ZT1lJiZ0Lkx0W0NpXSh0aGlzLGUsdGhpcy5OdCgpKSE9PXl1OnR5cGVvZiB0Lkx0PT09YW4mJihlPWUmJnQuTHQpO2s3Kz0yO31pZih3NS5MMShrNy50b1N0cmluZygpLGs3LnRvU3RyaW5nKCkubGVuZ3RoLDUzNDE4KSE9PUM3KXstdC5MdCE9PVpzP2U9ZXx8dC5MdFtDaV0odGhpcyxlLHRoaXMuTnQoKSk9PT15dTohdC5MdD09YW58fChlPWV8fHQuTHQpO319Y2F0Y2godCl7S2MuZSh0KTt9VjA9Njg3MDAyMDA4O3UwPS0yOTc1OTkyODc7eTA9Mjtmb3IodmFyIHYwPTE7dzUuTDEodjAudG9TdHJpbmcoKSx2MC50b1N0cmluZygpLmxlbmd0aCw2NDU0MSkhPT1WMDt2MCsrKXtyZXR1cm4gR2MuSnQoKT9lfHwtdGhpcy5WdDplfHwrdHUuYyh0LmJ0KTt5MCs9Mjt9aWYodzUuTDEoeTAudG9TdHJpbmcoKSx5MC50b1N0cmluZygpLmxlbmd0aCwyOTMyNSkhPT11MCl7cmV0dXJuIEdjLkp0KCk/ZXx8LXRoaXMuVnQ6ZXx8K3R1LmModC5idCk7fXJldHVybiBHYy5KdCgpP2UmJiF0aGlzLlZ0OmUmJiF0dS5jKHQuYnQpO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1aYy55KHRoaXMuenQsdGhpcy5rdCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW1h0XVtCYStHcitsdCtHcitvb11bQ2ldKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIHNvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIHo6dGhpcy5tdC54dD1uO2JyZWFrO2Nhc2UgTGU6dGhpcy5tdC5PdD0obitHcilbWHMrR3IrdHMrR3IrbmNdKCk7YnJlYWs7Y2FzZSBOdCtHcittYzp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBOdCtHcitUOnRoaXMubXQuQ3Q9bjticmVhaztjYXNlIE50K0dyK2VhOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIE50K0dyKyRzOnRoaXMubXQuUHQ9bjticmVhaztjYXNlIEVlOnRoaXMubXQuVHQ9bjticmVhaztjYXNlIEErR3IrTG86dGhpcy5tdC5BdD1uO2JyZWFrO2Nhc2UgcHQrR3IramU6dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgamErR3IramU6dGhpcy5tdC5TdD1uO2JyZWFrO2Nhc2UgSWMrR3IrY3I6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgdGUrR3Irc3M6dGhpcy5tdC5MdD1uO31pZighWGMub3QmJiF0aGlzLm10LkF0KWZvcihyPVtbWGMuZyYmMTE9PT1YYy5wdCx0aGlzLlV0XSxbWGMuYiYmWGMucHQ8NDEsdGhpcy5JdF0sW1hjLmIsdGhpcy5CdF0sW1hjLmQmJlhjLnB0PDQ3LHRoaXMuTXRdLFtYYy51dCx0aGlzLkR0XSxbWGMuY3QsdGhpcy5SdF0sW1hjLmImJlhjLnB0Pj01OSx0aGlzLld0XSxbWGMudXQmJlhjLnB0Pj00Nix0aGlzLld0XV0sZT0wO2U8cltwaV07ZSsrKWlmKHJbZV1bMF0pZm9yKGkgaW4gcltlXVsxXSl7eWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0ocltlXVsxXSxpKSYmKHRoaXMubXRbaV09cltlXVsxXVtpXSk7fX0sZ2V0T3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLk50KCk7fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXSh0aGlzLm10LHQpJiZ0W3BpXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30scXQ6ZnVuY3Rpb24oKXtHYy5KdCgpP3RoaXMuVnQ9Z3U6dHUuYSh0aGlzLm10LmJ0LDEsdGhpcy5tdC5DdCx0aGlzLm10LkV0LHRoaXMubXQuUHQpO319OyhudT1mdW5jdGlvbih0KXt2YXIgZTtlPXRoaXM7dGhpcy5RdD10O3RoaXMuR3Q9dGhpcy5ZdCgpO3RoaXMuS3Q9dGhpcy5adCgpO2l1LlgodGhpcy5HdCxncyxmdW5jdGlvbigpe0dzKGUuS3QpO1pjLlAoZS5HdCk7fSk7fSlbWHRdPXtZdDpmdW5jdGlvbigpe3ZhciB0LEs3LHI3LFE3O0s3PS0xODIwMzgxMDU7cjc9MTk5MDM1MjYxMTtRNz0yO2Zvcih2YXIgajc9MTt3NS5kMShqNy50b1N0cmluZygpLGo3LnRvU3RyaW5nKCkubGVuZ3RoLDg2ODQwKSE9PUs3O2o3Kyspe3Q9WmMueihoYyx7Y2xhc3M6ZnV9LEdyKTtyZXR1cm4gdGhpcy5RdFtTYytHcittY11bWHMrR3IrdHMrR3IrbmNdKCk9PT1Rcj9yaVtRcl1bSXQrR3IrV2VdKHQpOnRoaXMuUXRbX3QrR3IraV1bTmMrR3IrT3NdKHQsdGhpcy5RdFtWcytHcitrc10pLHQ7UTcrPTI7fWlmKHc1LkwxKFE3LnRvU3RyaW5nKCksUTcudG9TdHJpbmcoKS5sZW5ndGgsMzM0MykhPT1yNyl7dD1aYy56KGhjLHtjbGFzczpmdX0sR3IpO3JldHVybiB0aGlzLlF0W1NjKkdyL21jXVtYcypHci10cy1Hci1uY10oKT09UXI/cmlbUXJdW0l0L0dyL1dlXSh0KTp0aGlzLlF0W190L0dyJWldWyhOYy1HcikqT3NdKHQsdGhpcy5RdFsoVnMtR3IpJWtzXSksdDt9fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gQ28oZnVuY3Rpb24oKXt2YXIgZSxpO2k9VWModC5RdFt4ZV1bc24rR3IrenNdLDEwKTt0LlF0W1NjK0dyK21jXVtYcytHcit0cytHcituY10oKT09PVFyJiYoaT05ZTkpOyhlPV9uK1Z0K2dvK2VyK0RhK1Z0K04rZXIrbG4rVnQraytlcitHcisoS2ErVnQrR3IpK3QuUXRbZnIrR3Ird2NdKyhobytlcitHcikrKG9jK1Z0K0dyKSt0LlF0W2ZyK0dyK2ddKyhobytlcitHcikrKEhpK1Z0K0dyKSt0LlF0W2ZyK0dyK1duXSsoaG8rZXIrR3IpKyhwK1Z0K0dyKSt0LlF0W2ZyK0dyK0NjXSsoaG8rZXIrR3IpKyhzbit3aStMK1Z0K0dyKSsocWMoaSk/MjppKzEpKSE9PXQuR3RbYWErR3IrR2ldKHhlKSYmdC5HdFtsaStHcitHaV0oeGUsZSk7fSwxNTApO319O251Llh0PWZ1bmN0aW9uKHQpe3ZhciBlO3c1Llk0KDEyKTtlPXc1LmM0KHJ1LExpLHdpLHdpLEdyLGllLEdyKTt0W2FhK0dyK0dpXShlKXx8dFthYStHcitHaV0obG8pPT09ZnV8fCh0W2xpK0dyK0dpXShlLDEpLG5ldyBudSh0KSk7fTsoUWM9e2R0OmZ1bmN0aW9uKCl7dmFyIHQsZTtlPXRoaXMuZWUoKTtmb3IodD0wO3Q8ZVtwaV07dCsrKWlmKGVbdF1bMV0oKT09PWd1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIHl1O30sZWU6ZnVuY3Rpb24oKXt2YXIgdDt0PVtdO3JldHVybiBYYy5vdHx8WGMuaXQ/W106KHRbTXJdKFt0aGlzLmllLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlhjLnB0Pj02NCYmWGMucHQ8Njc7fV0pLHRbTXJdKFt0aGlzLm5lLGZ1bmN0aW9uKCl7cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubnQmJlhjLnB0Pj00MyYmWGMucHQ8NjQ7fV0pLHRbTXJdKFt0aGlzLnJlLGZ1bmN0aW9uKCl7dmFyIGI3LHE3LG03O2I3PS02MDMwNTI0OTU7cTc9LTQwNjg3OTgwNDttNz0yO2Zvcih2YXIgSTc9MTt3NS5MMShJNy50b1N0cmluZygpLEk3LnRvU3RyaW5nKCkubGVuZ3RoLDU1NDM5KSE9PWI3O0k3Kyspe3JldHVybiBYYy5ifHxaYy5ZKCl8fFhjLm18fFhjLnB0PD0xN3x8WGMucHQ+PTg5O203Kz0yO31pZih3NS5MMShtNy50b1N0cmluZygpLG03LnRvU3RyaW5nKCkubGVuZ3RoLDYyMDk0KSE9PXE3KXtyZXR1cm4gWGMuYnx8WmMuWSgpfHxYYy5tfHxYYy5wdDw9MTd8fFhjLnB0Pj04OTt9cmV0dXJuIFhjLmImJlpjLlkoKSYmWGMubSYmWGMucHQ+PTQ5JiZYYy5wdDw2NDt9XSksdFtNcl0oW3RoaXMub2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZDt9XSksdFtNcl0oW3RoaXMuc2UsZnVuY3Rpb24oKXtyZXR1cm4gWGMuZyYmWGMucHQ+PTExO31dKSx0W01yXShbdGhpcy5hZSxmdW5jdGlvbigpe3JldHVybiBYYy5odDt9XSksdFtNcl0oW3RoaXMuY2UsZnVuY3Rpb24oKXt2YXIgVDAsRTAsbzA7VDA9MTIwNjMzNjEyMTtFMD0xMjk2MjQyMjUyO28wPTI7Zm9yKHZhciBwMD0xO3c1LmQxKHAwLnRvU3RyaW5nKCkscDAudG9TdHJpbmcoKS5sZW5ndGgsNDUyNzYpIT09VDA7cDArKyl7cmV0dXJuIFhjLnV0fHxYYy5udHx8WGMucHQ+PTc0O28wKz0yO31pZih3NS5MMShvMC50b1N0cmluZygpLG8wLnRvU3RyaW5nKCkubGVuZ3RoLDY1MzgpIT09RTApe3JldHVybiBYYy51dCYmWGMubnQmJlhjLnB0PD00ODt9fV0pLHQpO319KS50ZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMudGVbWHRdPXtfZTprdSx1ZTpmdW5jdGlvbih0KXt2YXIgcjUsUTUsZTU7cjU9LTk1ODI4OTMwMTtRNT0tNjIxNDQ4NDIyO2U1PTI7Zm9yKHZhciBaNT0xO3c1LmQxKFo1LnRvU3RyaW5nKCksWjUudG9TdHJpbmcoKS5sZW5ndGgsOTUyNjgpIT09cjU7WjUrKyl7dGhpcy5mZT10O2U1Kz0yO31pZih3NS5MMShlNS50b1N0cmluZygpLGU1LnRvU3RyaW5nKCkubGVuZ3RoLDE0MzU1KSE9PVE1KXt0aGlzLmZlPXQ7fX0sbGU6a3UscGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhO2k9dGhpcztuPWkuZmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8WmMuJCg1KTthPVpjLmsobyk7aWYodD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygby5GdD09PVpzJiZvLkZ0W0NpXShuLHIsbyk9PT15dSl7cmV0dXJuIHl1O319Y2F0Y2godCl7S2MuZSh0KTt9cmV0dXJuIG11O30sZT1mdW5jdGlvbih0KXtpZih0eXBlb2Ygby5TdD09PVpzKXRyeXtvLlN0W0NpXShuLHIsbyx0KTt9Y2F0Y2godCl7S2MuZSh0KTt9fSx0KCk9PT15dSl7cmV0dXJuIHl1O310eXBlb2Ygb1t6XT09PVRjJiZvW3pdIT09ciYmKHI9b1t6XSk7R2MuanQoby5qdCk7dGhpcy5fZSgpO3RyeXtyZXR1cm4gdGhpcy5sZShyLG8scyxhLGZ1bmN0aW9uKHQpe2kuZGUodCk7aS5oZSYmR2MuaGUoKTtlKHQpO30pO31jYXRjaCh0KXtyZXR1cm4gS2MuZSh0KSx5dTt9fSx2ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuKEdjLm10LmJlP1pjLkM6QXUpKHQsZSxpKTt9LGRlOmt1LGhlOmd1fTtRYy5tZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMubWVbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTp5dSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3IodGhpcy52ZSh0LGksbikpO319KTtRYy5nZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuZ2VbWHRdPVpjLnkoUWMudGVbWHRdLHtoZTohWGMub3QmJiFYYy5kLGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnZlKHQsRmkpKTt9fSk7UWMueWU9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnllW1h0XT1aYy55KFFjLnRlW1h0XSx7a2U6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7dD1HYy53ZSgpO2U9R2MueGUuUztpPXR5cGVvZiBHYy5tdC5PZT09PVpzP0djLm10Lk9lW0NpXSgpOkdjLm10Lk9lO3JldHVybiBmdW5jdGlvbigpe3ZhciBuLHI7cmV0dXJuIGkhPT1GdT9pOihuPVpjLiQoMSkscj1lP2k6R2MuQ2UodCl8fGksZXUucygpfHwhWGMub3QmJiFYYy5nP3I6KHR1LmEoY3UsbixtdSkscltaXSh2cixHcikrKEdyK3NlK0dyKStuKSk7fSgpO30sbGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgeDksejksaDksbyxzLGEsYyx1LGgsZixwO3g5PTE3MTA2NjI4Nzg7ejk9LTEwMzk3MjE3MTM7aDk9Mjtmb3IodmFyIEw5PTE7dzUuZDEoTDkudG9TdHJpbmcoKSxMOS50b1N0cmluZygpLmxlbmd0aCwzMDE4NykhPT14OTtMOSsrKXtoOSs9Mjt9aWYodzUuZDEoaDkudG9TdHJpbmcoKSxoOS50b1N0cmluZygpLmxlbmd0aCw0NTQ4MCkhPT16OSl7fWE9dGhpcy5rZSgpO2M9R2Mud2UoKTt1PVpjLk4oYyk7aD0xNTtmPVtdO3A9ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbQW5dPT09WnMmJihlPXRbQW5dLGl1LlgodCxncyxlKSk7dFtBbl09ZnVuY3Rpb24oKXtyZXR1cm4geXU7fTt9O2ZvcihHYy5FZSgpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKSE9PUZpJiZaYy5mKGMsdW4pJiYocChjKSwwIT09Y1thYStHcitHaV0odW4pW0wrR3IrV2FdKEN0KSYmKGE9Y1thYStHcitHaV0odW4pKT09PUdyJiYoYT1GdSkpLGMmJmNbU2MrR3IrbWNdPT09T24mJmNbYWErR3IrR2ldKFRpKT09PUZpJiZaYy5mKGMsdW4pJiYocChjKSxpbyhmdW5jdGlvbigpe2NbQW5dPW11O30sM2UzKSxHYy5tdC5QZT9hPWNbYWErR3IrR2ldKHVuKTooYT1GdSxYYy5vdCYmKFhjLnV0P2ZbTXJdKGZ1bmN0aW9uKCl7QXUoY1thYStHcitHaV0odW4pLEZpKTt9KTppbyhmdW5jdGlvbigpe0F1KGNbYWErR3IrR2ldKHVuKSxGaSk7fSwyMCkpKSksWGMuZXQmJlhjLnV0fHxYYy5ldCYmWGMuc3QmJiFYYy5kJiYhWGMuYiYmIVhjLmh0PyhBdShhLEZpKSxaYy5IKEJyLGZ1bmN0aW9uKCl7WmMuVCh0KTt9LGgpKTohWGMub3QmJlpjLmgoYyxUaSkhPT1GaSYmKFhjLnV0JiZYYy5zdHx8WGMuaHQmJlhjLnB0PDEwfHxYYy5iJiZYYy5wdDw0MSk/WGMudXQ/KFpjLlEoYSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KFpjLlEodCksY1tTYytHcittY109PT1PbiYmdSYmWmMuVCh1KSk6WGMuZXQmJlhjLmQ/KG89QXUoYSxGaSksWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6KG89eVtRYV0oVWErVnQrY2ksRmkpKT8ob1tFaV1bdW5dPWEsWmMuSChCcixmdW5jdGlvbigpe1pjLlQodCk7fSxoKSk6bz1BdSh0LEZpKSxzPTA7czxmW3BpXTtzKyspe2Zbc11bQ2ldKCk7fW8mJnIobyk7fX0pO1FjLm9lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5vZVtYdF09WmMueShRYy50ZVtYdF0se2hlOnl1LGxlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG87bz10aGlzLnZlKHQsaSxuKTtvW2tuXSgpO1R1W2JvXSgpO1pjLk0obyk7aW8oZnVuY3Rpb24oKXtyKG8pO30sMWUzKTt9fSk7UWMuY2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLmNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZSh0LGksbik7cz1HYy5UZSgxZTMpO2l1LksoeSxibyxmdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9KTtvW2NjXT1mdW5jdGlvbigpe2lvKGZ1bmN0aW9uKCl7WmMuUChzKTt9LDEwKTt9O3Iobyk7fX0pO1FjLmFlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5hZVtYdF09WmMueShRYy50ZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIEQ5LFc5LGw5LG87RDk9MTk0OTIwNzgwOTtXOT04OTkwMjg0O2w5PTI7Zm9yKHZhciBWOT0xO3c1LkwxKFY5LnRvU3RyaW5nKCksVjkudG9TdHJpbmcoKS5sZW5ndGgsNTc4NTApIT09RDk7VjkrKyl7bDkrPTI7fWlmKHc1LkwxKGw5LnRvU3RyaW5nKCksbDkudG9TdHJpbmcoKS5sZW5ndGgsNTEwNjgpIT09Vzkpe315W3NvXT1aYy4kKDUpO289dGhpcy52ZSh0LGksbik7dGhpcy52ZShHcix5W3NvXSxHcik7eVtzb109bXU7cihvKTt9LGhlOnl1fSk7UWMuc2U9ZnVuY3Rpb24odCl7dGhpcy51ZSh0KTt9O1FjLnNlW1h0XT1aYy55KFFjLnRlW1h0XSx7bGU6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO289dGhpcy52ZShQdT90OkZ1LGksbik7cz1mdW5jdGlvbigpe29bRWldW3VuXT10O307aXUuSyhvLGtuLHMpO29ba25dKCk7VHVbYm9dKCk7aW8ocywxMDApO3Iobyk7fSxoZTp5dX0pO1FjLm5lPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5uZVtYdF09WmMueShRYy50ZVtYdF0se0ZlOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPVpjLnooYXIse2RhdGE6WmMuTChlbitQZStNYyx0aGlzLkFlKStaYy4kKDMpfSk7cmV0dXJuKHQ9WmMueihoYyx7c3R5bGU6UGkrVnQrYStlcitvYytWdCtIcytlcitLYStWdCtIcytlcitEYStWdCtOK2VyK3ArVnQrRnIrSGErR3IrZXIrSGkrVnQrem4rZXIrayt3aStHYStWdCtYaStlciskbytWdCthK2VyK0dyfSkpW0l0K0dyK1dlXShlKSxbZSx0XTt9LFNlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMueSh0LHt9KTtyZXR1cm4gZVtwXT1lW0hpXT05ZTUsZVtvY109ZVtLYV09MSxlO30sQWU6THQrR3IrdGErR3IrRmMrR3IrUHMrR3Irb24rR3IrV2MrR3IreG8rR3IrJCtHcithaStHcituK0dyK1NhK0dyK0tyK0dyK1F0K0dyK2t0K0dyK3p0K0dyK3RjK0dyK1l0K0dyK3ZhK0dyK3MrR3IrdmErdWMraG4rR3IrTGErR3IrenQrR3IrVytHcitEYytHcitaYStHcittdCtHcitWaStHcitzYStHcitVZStHcitUYStHcit2YStHcitWaStHcitQcitHcit4bytHcitVZStHcitpYytHcitwbytHcitLcitHcitKK0dyK2hzK0dyK1ppK0dyK3ZhK0dyK1ByK0dyK0xhK0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrWGErR3IrVHMrR3IrWmkrR3IrdmErR3IrUHIrR3IrSGUrR3IrenQrR3IrVytHcitGYytHcit0YytHcityYytHcithZStHcit2aStHcit2YStHcitQcitHcitydCtHcitwcytHcittdCtHcituYStHcitUbytHcityZStHcit4bytHcit0YStHcitqaStHcitXK0dyK2F0K0dyK3ZhK0dyK1ByK0dyK2MrR3IrYit1YytFK0dyK1FvK0dyK3BzK0dyK2RjK0dyK1l0K0dyK3ZhK0dyK1lhK0dyK1hhK0dyK1RzK0dyK1ppK0dyK3ZhK0dyK0dlK0dyK09lK0dyK2dhK0dyK0hvK0dyK3ZhK0dyK1ByK0dyK2t0K0dyK3p0K0dyK1crR3IrRmMrR3IrdGMrR3IrdmErR3Ircm4rdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitrdCtHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK09lK0dyK1krR3IrS3QrR3IreG8rR3IrVWUrR3IrYnMrR3IrRnQrR3IrUG8rR3IrRStHcitVZStHcitiaStHcitVZStHcitTZStHcitWcitHcitEcytHcit4bytHcitVZStHcitHbytHcit2YStHcitQdCtHcitVZStHcitScitHcit5YytHcitPZStHcitWbytHcitLcitHcit2YytHcitiZStHcitzK0dyK3hjK0dyK0tvK0dyK3IrR3IrYWkrR3IrZnQrdWMrQnQrR3IrVm4rR3IrRStHcitucitHcitBZStHcit6dCtHcitXK0dyK0RjK0dyK1phK0dyK210K0dyK1ZpK0dyK05hK0dyK1RzK0dyK010K0dyK2hyK0dyK1lzK0dyK0tzK0dyK0UrR3IrVWUrR3IrZm4rR3IrcmMrR3IrYWUrR3IrRCtHcitMdCtHcitWcitHcit0YStHcittdCtHcitacitHcitWcitHcitPZSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBzLGEsYyx1LGg7dT10aGlzO2g9eXU7dHJ5eyhhPXRoaXMudmUoVWErVnQrY2ksRmkpKVttcl1bcnJdKHc1LnU0KHVyLEdyLEdyLGpvLFBlLHVpLEdyLFFyLEdyLFBlLG8sR3IsdWksdWksR3IsdXIsUGUsR3IsdXIsam8sR3IsdXIsbyx1aSxHcix1cixHcix1aSxRcix1cix1aSx3NS5ZNCgxMykpKTtpdS5LKGEscWEsZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7bigpO2FbSW9dKCk7bygpO3JvKGMpO31ofHwoaD1ndSxzPWFbQmNdPUF1KFVhK1Z0K2NpLGksWmMuayh1LlNlKGUpKSksaXUuWChhLGJvLGYpLGM9aW8oZiwzZTMpLGFbbXJdW1FyXVtQYStHcithaStHcit4YytHcit6dCtHcitwYV09dS5GZSgpWzFdW1BuK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXSk7ZnVuY3Rpb24gbigpe3c1Llk0KDE0KTthW21yXVtRcl1bdzUudTQoUGEsenQsR3IsR3IsR3IseGMsR3IsYWkscGEpXT1Hcjt9ZnVuY3Rpb24gbygpe3ZhciBhMSxZMSxmMTthMT0tMTU2OTI3MTMyMDtZMT0yMzc1ODcyNDtmMT0yO2Zvcih2YXIgRDE9MTt3NS5MMShEMS50b1N0cmluZygpLEQxLnRvU3RyaW5nKCkubGVuZ3RoLDk0NDMyKSE9PWExO0QxKyspe3NbRWMlR3ItYmFdKGVbSGldLGVbcF0pO3NbZGElR3IqYmFdKGVbb2NdLGVbS2FdKTtzW0VpXVtaXSh0KTtyKHMpO2YxKz0yO31pZih3NS5kMShmMS50b1N0cmluZygpLGYxLnRvU3RyaW5nKCkubGVuZ3RoLDYyNDUzKSE9PVkxKXtzW0VjJUdyLWJhXShlW0hpXSxlW3BdKTtzW2RhJUdyKmJhXShlW29jXSxlW0thXSk7c1tFaV1bWl0odCk7cihzKTt9c1tFYytHcitiYV0oZVtIaV0sZVtwXSk7c1tkYStHcitiYV0oZVtvY10sZVtLYV0pO3NbRWldW1pdKHQpO3Iocyk7fX0pO31jYXRjaCh0KXt9fX0pO1FjLnJlPWZ1bmN0aW9uKHQpe3RoaXMudWUodCk7fTtRYy5yZVtYdF09WmMueShRYy5uZVtYdF0se2xlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztzPVpjLk8oZ3UpO2l1LksoeSxibyxmdW5jdGlvbigpe1pjLlAocyk7b1tFaV1bWl0odCk7cihvKTt9KTt3NS5vNCg0KTtvPXRoaXMudmUodzUuYzQoVWEsVnQsY2kpLEZpKTtzW3RvK0dyK3lhXVttcl1bcnJdKHRoaXMuRmUoKVsxXVtQbitHcithaStHcit4YytHcit6dCtHcitwYV0pO319KTtRYy5pZT1mdW5jdGlvbih0KXt0aGlzLnVlKHQpO307UWMuaWVbWHRdPVpjLnkoUWMudGVbWHRdLHtMZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47aT10aGlzO249eXU7dzUubzQoNCk7ZT10aGlzLnZlKHc1LmM0KFVhLFZ0LGNpKSx0Lnd0fHxGaSx0LkJlfHxHcik7dC56ZSYmKGUmJmVbSW9dKCksbj1ndSk7IW4mJmUmJmlvKGZ1bmN0aW9uKCl7ZVtFaV1bdW5dPXQueHQ7dC5JZSYmaS5JZShlKTt9LDEwMCk7fSx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpLG47bj10aGlzO3RoaXMuamU9ZHJbTW5dKCk7dGhpcy5mZT10O2U9R2Mud2UoKTt3NS5vNCgxNSk7aT1aYy5CKGUsdzUuYzQoZ3QsR3IseGMsR3IsR3IsRmMseGMsR3IsZmMsR3IsVnIpKTsoZVtTYytHcittY109PT1PbiYmZVthYStHcitHaV0oanIpIT09RmkmJiFaYy5TKGUpfHxpJiYhWmMuUyhpKSkmJih0aGlzLmhlPWd1KTtpdS5YKHksSWUsZnVuY3Rpb24gdChlKXt0cnl7ZVtpZV0uamU9PT1uLmplJiZuLkxlKGVbaWVdKTtlW2llXS56ZSYmaXUuWih5LEllLHQpO31jYXRjaCh0KXt9fSk7fSxsZTpmdW5jdGlvbih0LGUsaSxuLHIpe3RoaXMuSWU9cjt0aGlzLk1lKHtqZTp0aGlzLmplLEJlOm4sSWU6Z3UseHQ6dH0pO3RoaXMuTWUoe2plOnRoaXMuamUsemU6Z3UseHQ6VWErVnQrY2l9KTt9LGhlOnl1LE1lOmZ1bmN0aW9uKHQpe3lbSnQrR3IrWF0odCx5W0VpXVtSb10pO319KTtHYz17X2k6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RaSgpK3RoaXMuSGkoKT5aYy5HKCk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm10LkplO30sSmU6ZnVuY3Rpb24oKXt2YXIgdDt0PVpjLngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLm5uKHQsUm4sdFtwaV0mJnRbMF09PT15dSk7fSxraTpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLk9pKGksdCxndSl8fG4oZ3UseXUpO30sV2k6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W3F0XSYmMCE9PXRbcXRdfHx0aGlzLmNpLkcrMTUwPlpjLkcoKTt9Y2F0Y2godCl7cmV0dXJuIHl1O319LFJpOmZ1bmN0aW9uKCl7dGhpcy5XZT1bXTt9LFlpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQucWU7fSxVaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLldlO30sWmU6bXUsVGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLnFpKHQpKXtyZXR1cm4geXU7fWlmKCF0aGlzLm10LnFlW3BpXXx8dFthYStHcitHaV0obG8pPT09ZnUpe3JldHVybiBndTt9Zm9yKDtlPHRoaXMubXQucWVbcGldO2UrKylpZih0PT09dGhpcy5tdC5xZVtlXXx8dHlwZW9mIHRoaXMubXQucWVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5xZVtlXVtYcytHcitwcitHcituY10oKXx8WmMuSSh0LHRoaXMubXQucWVbZV0pKXx8WmMuQih0LHRoaXMubXQucWVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LHdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueGUuUXQ7fSxMaTpmdW5jdGlvbigpe3ZhciB0LGU7ZT10aGlzO3RoaXMuWmU9WmMueihoYyx7c3R5bGU6b2MrVnQrRnIrSGErR3IrZXIrS2ErVnQrRnIrSGErR3IrZXIrRGErVnQrSXMrZXIrcCtWdCt6bitlcitIaStWdCt6bitlcitzbit3aStMK1Z0K25vK2VyK3h0K1Z0K1hpK2VyK0dyfSxHcik7dD1DbyhmdW5jdGlvbigpe3ZhciBpO2k9cmlbUXJdO2kmJihHcyh0KSxpW0l0K0dyK1dlXShlLlplKSk7fSwxMDApO30saGk6ZnVuY3Rpb24oKXt2YXIgTjksYTksWTksdCxlLGk7Tjk9LTUxNTA4MTc1NzthOT0tMTMwNjg1MTEzNztZOT0yO2Zvcih2YXIgczk9MTt3NS5kMShzOS50b1N0cmluZygpLHM5LnRvU3RyaW5nKCkubGVuZ3RoLDEwMDExKSE9PU45O3M5Kyspe1k5Kz0yO31pZih3NS5MMShZOS50b1N0cmluZygpLFk5LnRvU3RyaW5nKCkubGVuZ3RoLDQ1MzQ0KSE9PWE5KXt9aT10aGlzLlhlLm9pO2Zvcih0PTA7dDx0aGlzLmZpW3BpXSYmKCF0aGlzLnBpKCkmJiF0aGlzLl9pKCkpO3QrKyl7aWYoZT10aGlzLmZpW3RdLHRoaXMuWGUuc2krKyx0aGlzLlhlLm9pPVpjLkcoKSx0aGlzLmxpKGUpPT09eXUpe3JldHVybiB0aGlzLlhlLnNpLS0sdm9pZCh0aGlzLlhlLm9pPWkpO31pPXRoaXMuWGUub2k7ZXUuYShodSx0aGlzLlhlLm9pKTtlLnl0PT09bHUmJmV1LmEodXUsdGhpcy5YZS5zaSk7fX0sT2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLHIsbyxzO3c1Lm80KDQpO289dzUuYzQoR3IsVHQsR3IpO3c1Llk0KDIpO3M9dzUuYzQobyx0KTtmb3Iobj0wO248ZVtwaV07bisrKWlmKHI9KEdyK090K0dyK1R0K0dyKVtMK0dyK1dhXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW2ZzXShzW3BpXS1yW3BpXSk9PT1yfHxpJiZyPT09d3Upe3JldHVybiBndTt9cmV0dXJuIHl1O30sZW46ZnVuY3Rpb24odCxlKXt2YXIgTDAsZDAsTzAsaSxuO0wwPTEyMjU5MjUxNjQ7ZDA9LTc2NDA0NzIyNjtPMD0yO2Zvcih2YXIgQzA9MTt3NS5MMShDMC50b1N0cmluZygpLEMwLnRvU3RyaW5nKCkubGVuZ3RoLDk4MzQ3KSE9PUwwO0MwKyspe08wKz0yO31pZih3NS5MMShPMC50b1N0cmluZygpLE8wLnRvU3RyaW5nKCkubGVuZ3RoLDg1NTk4KSE9PWQwKXt9aT10aGlzO249dGhpcy50bih0LGUpO3RoaXMuV2VbTXJdKG4pO3RoaXMuRGkobik7dGhpcy5pbnx8KEdjLkNpKCksZnVuY3Rpb24oKXt2YXIgdCxlO1hjLmImJigoZT1yaVtVcytHcitDbl0oaGMpKVtSYytHcitpdF0oVmEsZnVuY3Rpb24oKXtDdT1ndTt9KSxDdT1vNSx0PUNvKGZ1bmN0aW9uKCl7aWYoQ3U9eXUsIWkubXQuUmUpe2lmKHR5cGVvZiB5W3dzXSE9PWFyfHx0eXBlb2YgeVt3c11bT29dIT09WnMpe3JldHVybiBDdT1vNSx2b2lkIEdzKHQpO315W3dzXVtPb10oZSk7eVt3c11bTWldKCk7fX0sNTAwKSk7fSgpLHRoaXMuaW49bzUpO30sUGk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSmkoKSx0P3RoaXMuZmlbcGldOnRoaXMuZmlbcGldPjA7fSx2aTpmdW5jdGlvbigpe3ZhciB0LGU7dD1aYy5HKCk7ZT1aYy5HKGF1KTt3NS5ZNCgxNik7dGhpcy5YZS5yaT13NS5jNChlLHQsMzE1MzYwMDAwMDApO3RoaXMuWGUucmkmJih0aGlzLmxpPWt1KTt9LEJpOmZ1bmN0aW9uKCl7dmFyIHQ7dD1VYyhldS5jKGh1KSwxMCk7cWModCkmJih0PTApO3RoaXMuWGUub2k9dDt9LENlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9WmMuTih0KTtyZXR1cm4gZSYmIXRoaXMubXQuTmUmJlpjLlModCk/eXU6ZTt9LGp0OmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtlPXR5cGVvZiB0PT09Z2U/Z3U6ISF0O3c1Lm80KDIpO2k9dzUuYzQocnUsSSk7bj1yaVthYStHcitDbitHcitpaStHcit0bl0oaSk7ZT9ufHwobj1aYy56KERvLHtjb250ZW50OkljK3dpK2lhLG5hbWU6aWEsaWQ6aX0pLHJpW2FhK0dyK1JlK0dyK2lpK0dyK1JpK0dyK21jXShvKVswXVtJdCtHcitXZV0obikpOm4mJlpjLlAobik7fSxHaTpmdW5jdGlvbigpe3RoaXMuWGUuaWk9Z3U7dGhpcy5oaT1rdTt9LEp0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuRGU7fSx5aTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sZHJbQWNdKHRbMF0qdFsxXSp0WzJdL28pK28rKGlbc10+PnMpKSl8fG48MSYmKHIoaVtzK2VdLHRbc10qaVtzXStzKXx8cihpW3MrMiplXSx0W3NdKih0WzBdK3RbMV0rdFsyXSkpfHxyKGlbcyszKmVdLGRyW0FjXSh0WzBdKnRbMV0qdFsyXS9vKStvKSkpKTtzKyspO30scWk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHwhdGhpcy5tdC5KZVtwaV0pe3JldHVybiB5dTt9Zm9yKDtlPHRoaXMubXQuSmVbcGldO2UrKylpZih0PT09dGhpcy5tdC5KZVtlXXx8dHlwZW9mIHRoaXMubXQuSmVbZV09PT1UYyYmKHRbU2MrR3IrbWNdPT09dGhpcy5tdC5KZVtlXXx8WmMuSSh0LHRoaXMubXQuSmVbZV0pKXx8WmMuQih0LHRoaXMubXQuSmVbZV0pKXtyZXR1cm4gZ3U7fXJldHVybiB5dTt9LGNpOnt1aTp7fSxHOjB9LEhpOmZ1bmN0aW9uKCl7cmV0dXJuIFhjLm90P2RyW0JvXSh0aGlzLm10LlZlLDFlMyk6WGMuYnx8WGMuZ3x8WGMuY3R8fFhjLnV0JiYhWGMuZXQ/ZHJbQm9dKHRoaXMubXQuVmUsMjAwKTp0aGlzLm10LlZlO30sRWU6ZnVuY3Rpb24odCl7dmFyIGUsWjcsdDcsVTc7Wjc9LTEyNTc1NDEyNDI7dDc9MTMwMDY1ODcyMDtVNz0yO2Zvcih2YXIgejc9MTt3NS5MMSh6Ny50b1N0cmluZygpLHo3LnRvU3RyaW5nKCkubGVuZ3RoLDgzNTc3KSE9PVo3O3o3Kyspe2U9dHx8dGhpcy5jaS51aTtVNys9Mjt9aWYodzUuZDEoVTcudG9TdHJpbmcoKSxVNy50b1N0cmluZygpLmxlbmd0aCwzMDU1KSE9PXQ3KXtlPXQmJnRoaXMuY2kudWk7fXRyeXtlW01vK0dyK25pXSYmZVtNbytHcituaV0oKTtlW3FlK0dyK19zXSYmZVtxZStHcitfc10oKTt3NS5vNCg0KTtlW3c1LmM0KE5yLEdyLGNvKV09eXU7dzUubzQoNCk7ZVt3NS51NChtcyxHcixIcildPWd1O31jYXRjaCh0KXt9fSxpOmZ1bmN0aW9uKCl7dmFyIE8xLEcxLEMxO08xPS0xMzAyMzI0NTE3O0cxPTg4ODY0MDYzMDtDMT0yO2Zvcih2YXIgbjE9MTt3NS5kMShuMS50b1N0cmluZygpLG4xLnRvU3RyaW5nKCkubGVuZ3RoLDU5MTU1KSE9PU8xO24xKyspe3JldHVybiB0aGlzLm10LlVlfHx0aGlzLm10LkRlO0MxKz0yO31pZih3NS5MMShDMS50b1N0cmluZygpLEMxLnRvU3RyaW5nKCkubGVuZ3RoLDIzODAyKSE9PUcxKXtyZXR1cm4gdGhpcy5tdC5VZSYmdGhpcy5tdC5EZTt9fSxwaTpmdW5jdGlvbigpe3ZhciBoNyxpNyxMNztoNz0tMTUxMTEyMzE1NDtpNz0tMTY3MjAwNTI5NjtMNz0yO2Zvcih2YXIgTzc9MTt3NS5kMShPNy50b1N0cmluZygpLE83LnRvU3RyaW5nKCkubGVuZ3RoLDMyNTMzKSE9PWg3O083Kyspe3JldHVybiB0aGlzLiRpKCk8dGhpcy5tdC5IZTtMNys9Mjt9aWYodzUuTDEoTDcudG9TdHJpbmcoKSxMNy50b1N0cmluZygpLmxlbmd0aCwxOTk5KSE9PWk3KXtyZXR1cm4gdGhpcy4kaSgpPj10aGlzLm10LkhlO319LGdpOmZ1bmN0aW9uKHQsZSxpLG4scil7Zm9yKHZhciBvLHM9MDtzPGUmJihvPXRbc10sISgxPT09biYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzErKGlbc108PGlbc10lMTApLGlbZStzXSl8fHIob1trZStHcitucytHcitCaV0ob1twaV0tMSkqaVtzXSoyK3MrKGlbc10+PnMpLGlbMiplK3NdKXx8cihvW3BpXSppW3NdKjMrKGlbc108PHMpLGlbMyplK3NdKSl8fG48MSYmKHIob1trZStHcitucytHcitCaV0oMCkqaVtzXStzKzEsaVtlK3NdKXx8cihvW2tlK0dyK25zK0dyK0JpXShvW3BpXS0xKSppW3NdKjIrcyxpWzIqZStzXSl8fHIob1twaV0qaVtzXSozLGlbMyplK3NdKSkpKTtzKyspO30sV2U6W10sdG46ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IFljKHRoaXMuV2VbcGldLHQsZSk7fSxBaTpmdW5jdGlvbih0KXt0aGlzLmNpLnVpPXQ7dGhpcy5jaS5HPVpjLkcoKTt9LGFpOltdLE1pOmZ1bmN0aW9uKHQpe3JldHVybiBudS5YdCh0KSx0aGlzO30sWmk6ZnVuY3Rpb24oKXtyZXR1cm4gWmMucChbW1RyLHRoaXMubXQuRGVdLFtvaSx0aGlzLm10LlVlXSxbd3QsdGhpcy5tdC5SZV0sW0xyK0dyK3plLHRoaXMubXQuT2VdLFtSbitHcitFbix0aGlzLm10Lk5lXSxbRHQsdGhpcy5tdC5IZV0sW2xjK0dyK2JhLHRoaXMubXQucWVdLFtSbitHcitiYSx0aGlzLm10LkplXSxbUW4sdGhpcy5tdC5WZV0sW3crR3IrVix0aGlzLm10LiRlXSxbdytHcitEbix0aGlzLm10LlFlXSxbcG4rR3IrdHIrR3IrTG4sdGhpcy5tdC5HZV0sW0JzK0dyK2wrR3IrU3MsdGhpcy5tdC4kdF0sW05zK0dyKyRyLHRoaXMubXQuWWVdLFtJYytHcitwYytHcitfaSx0aGlzLm10LmJlXSxbTHMrR3IrYnQsdGhpcy5tdC5LZV0sW0IrR3IrdmUrR3IrX28rR3IreW4rR3IrTG4sdGhpcy5tdC5QZV1dKTt9LFRlOmZ1bmN0aW9uKHQpe3ZhciBlLGk7aT1aYy5PKGd1KTtyZXR1cm4gZT1pW3RvK0dyK3lhXVttcl1bVXMrR3IrQ25dKGRlKSwwPT09eVtFaV1bdW5dW0wrR3IrV2FdKGorVnQrR3IpP2VbUGErR3IrYWkrR3IreGMrR3IrenQrR3IrcGFdPUdyKyhXcitZZStHcit3bitHcikrKGYrVHQrUytUdCthYStHcitaZStHcitRaStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKTplW1BhK0dyK2FpK0dyK3hjK0dyK3p0K0dyK3BhXT1HcisoV3IrWWUrR3Ird24rR3IpKyhZcitUdCtjYStHcitfZStSK1pzK1IrR3IrUCtHcit3bitHcitEcitHcitQK0dyK2VyK0dyKSsoR3IrRHIrR3IrWWUrQXMrWWUrR3IrUitJYStQK0dyK1llK0dyK3duK0dyK0RyK0dyKSxpW3RvK0dyK3lhXVttcl1bUXJdW0l0K0dyK1dlXShlKSx0eXBlb2YgdCE9PVd0JiZ0eXBlb2YgdCE9PWdlfHxpbyhmdW5jdGlvbigpe1pjLlAoaSk7fSx0fHw1MDApLGk7fSxOaTpmdW5jdGlvbigpe3ZhciBvMSx3MSxwMTtvMT0tMjExMjgyOTI0MDt3MT00MjIxODMwODI7cDE9Mjtmb3IodmFyIHEwPTE7dzUuZDEocTAudG9TdHJpbmcoKSxxMC50b1N0cmluZygpLmxlbmd0aCwzNTgxNCkhPT1vMTtxMCsrKXtmb3IodmFyIHQsZT02O2U8PXRoaXMuV2VbcGldO2UtLSl7dD10aGlzLldlW2VdO3R1LnUodC5tdC5idCk7fXRoaXMuWGUub2k9dGhpcy5YZS5zaT00O2V1LnUodXUpO2V1LnUoY3UpO2V1LnUoaHUpO3AxKz0yO31pZih3NS5MMShwMS50b1N0cmluZygpLHAxLnRvU3RyaW5nKCkubGVuZ3RoLDUxMjkxKSE9PXcxKXtmb3IodmFyIHQsZT0yO2U8dGhpcy5XZVtwaV07ZSsrKXt0PXRoaXMuV2VbZV07dHUudSh0Lm10LmJ0KTt9dGhpcy5YZS5vaT10aGlzLlhlLnNpPTM7ZXUudSh1dSk7ZXUudShjdSk7ZXUudShodSk7fWZvcih2YXIgdCxlPTA7ZTx0aGlzLldlW3BpXTtlKyspe3Q9dGhpcy5XZVtlXTt0dS51KHQubXQuYnQpO310aGlzLlhlLm9pPXRoaXMuWGUuc2k9MDtldS51KHV1KTtldS51KGN1KTtldS51KGh1KTt9LHppOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiBldS5zKCk/KHQ9ZXUuYyh1dSksZXUudSh1dSkpOnR1LmModXUpJiYocmlbaWFdPT09UnRbdW5dfHx+UnRbdW5dW0wrR3IrV2FdKEdyK3NlK0dyK3R1LmMoY3UpKSkmJih0PXR1LmModXUpLGlvKGZ1bmN0aW9uKCl7dHUudSh1dSk7dHUudShjdSk7fSwzMDApKSx0PVVjKHQsMTApLHQ9cWModCk/MDp0LHRoaXMuWGUuc2k9dDt9LG10OntOZTpndSxLZTp5dSxKZTpbXSxWZTowLCR0OmJ1LCRlOltdLERlOnl1LE9lOkZ1LEhlOjk5OTksUmU6eXUscWU6W10sWWU6MTAsVWU6eXUsUWU6Z3UsUGU6eXUsYmU6eXUsR2U6Z3V9LCRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuWGUuc2k7fSxRaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlhlLm9pO30sYmk6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxhLGMsdSxuOSxGOSxnOTtzPXRoaXM7YT0wO2M9dGhpcy5YZTt1PWZ1bmN0aW9uKHQsZSl7dmFyIFA5LEo5LFg5O1A5PTMyNTI1NjI2O0o5PS05NTA1MjQwNDM7WDk9Mjtmb3IodmFyIFM5PTE7dzUuTDEoUzkudG9TdHJpbmcoKSxTOS50b1N0cmluZygpLmxlbmd0aCw0ODQ5MykhPT1QOTtTOSsrKXtyZXR1cm4gdD09PWV8fChjLm5pPWd1LHMubGk9a3UpLHQhPWU7WDkrPTI7fWlmKHc1LkwxKFg5LnRvU3RyaW5nKCksWDkudG9TdHJpbmcoKS5sZW5ndGgsNTM4MDApIT09Sjkpe3JldHVybiB0IT09ZSYmKGMubmk9Z3Uscy5saT1rdSksdCE9PWU7fX07aWYodHlwZW9mIHlbcnVdW2FyXSE9PWdlKXtjLm5pPW11O3Q9eVtydV1bYXJdW1huXSgpO2U9eVtydV1bYXJdW1huXSgpO2k9eVtydV1bYXJdW1huXSgpO249eVtydV1bYXJdW1huXSgpO3I9WmMuRigoeVtydV1bYXJdW1huXSgpfHx7c3JjOm51bGx9KVtYcl0pO289WmMuRih4dVtYcl0pO3RyeXtuOT0xNDUwNjEyMjI1O0Y5PS01NjY0Nzc2Nzc7Zzk9Mjtmb3IodmFyIFI5PTE7dzUuZDEoUjkudG9TdHJpbmcoKSxSOS50b1N0cmluZygpLmxlbmd0aCwyODY5NSkhPT1uOTtSOSsrKXthPXlbcnVdW2FyXVtYbl0oKSYmNztnOSs9Mjt9aWYodzUuZDEoZzkudG9TdHJpbmcoKSxnOS50b1N0cmluZygpLmxlbmd0aCwzODQzOCkhPT1GOSl7YT15W3J1XVthcl1bWG5dKCkmJjc7fWE9eVtydV1bYXJdW1huXSgpfHwwO31jYXRjaCh0KXt9YT1kcltCb10oMCxkcltrYV0oMSxhKSk7dGhpcy5taSh0LG8scix1KTt0aGlzLmdpKHQsdFtwaV0sZSxhLHUpO3RoaXMueWkoaSxpW3BpXSxuLGEsdSk7dGhpcy5raSh0LHRbcGldLFpjLkYoKSx1LHUpO3RoaXMud2koaSxaYy5HKCkpO2Mubmk9PT1tdSYmKGMubmk9eXUpO31jLnhpPWF8fDA7fSxFaTpmdW5jdGlvbih0LGUpe3ZhciBkOSxPOSxHOTtkOT04MzA2MTMyMTE7Tzk9MTQwNDM5MjY4MztHOT0yO2Zvcih2YXIgazk9MTt3NS5kMShrOS50b1N0cmluZygpLGs5LnRvU3RyaW5nKCkubGVuZ3RoLDE2MDEwKSE9PWQ5O2s5Kyspe3RoaXMueGUuUXQ9dDt0aGlzLnhlLlM9ZTtHOSs9Mjt9aWYodzUuZDEoRzkudG9TdHJpbmcoKSxHOS50b1N0cmluZygpLmxlbmd0aCw3Njg2OSkhPT1POSl7dGhpcy54ZS5RdD10O3RoaXMueGUuUz1lO319LFhpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix1OSx5OSxIOTtuPXR8fHt9O2ZvcihlIGluIG4paWYoeWlbWHRdW0JhK0dyK2x0K0dyK29vXVtDaV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBUcjp0aGlzLm10LkRlPWk7YnJlYWs7Y2FzZSBvaTp0aGlzLm10LlVlPWk7YnJlYWs7Y2FzZSB3dDp0aGlzLm10LlJlPWk7YnJlYWs7Y2FzZSBMcitHcit6ZTp0aGlzLm10Lk9lPWk7YnJlYWs7Y2FzZSBSbitHcitFbjp0aGlzLm10Lk5lPWk7YnJlYWs7Y2FzZSBEdDp0aGlzLm10LkhlPWk7YnJlYWs7Y2FzZSBsYytHcitiYTp0aGlzLnFlW29hXSh0aGlzLGkpO2JyZWFrO2Nhc2UgUm4rR3IrYmE6dGhpcy5KZVtvYV0odGhpcyxpKTticmVhaztjYXNlIFFuOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHcrR3IrVjp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSB3K0dyK0RuOnRoaXMubXQuUWU9aTticmVhaztjYXNlIHBuK0dyK3RyK0dyK0xuOnRoaXMubXQuR2U9aTticmVhaztjYXNlIEJzK0dyK2wrR3IrU3M6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgTnMrR3IrJHI6dGhpcy5tdC5ZZT1pO2JyZWFrO2Nhc2UgSWMrR3IrcGMrR3IrX2k6dGhpcy5tdC5iZT1pO2JyZWFrO2Nhc2UgTHMrR3IrYnQ6dGhpcy5tdC5LZT1pO2JyZWFrO2Nhc2UgQitHcit2ZStHcitfbytHcit5bitHcitMbjp0aGlzLm10LlBlPWk7fXU5PTE1MDY0OTg2ODA7eTk9NjExNzc3ODY1O0g5PTI7Zm9yKHZhciBUOT0xO3c1LkwxKFQ5LnRvU3RyaW5nKCksVDkudG9TdHJpbmcoKS5sZW5ndGgsNjMyMykhPT11OTtUOSsrKXtyZXR1cm4gdGhpcztIOSs9Mjt9aWYodzUuZDEoSDkudG9TdHJpbmcoKSxIOS50b1N0cmluZygpLmxlbmd0aCw2MzczOSkhPT15OSl7cmV0dXJuIHRoaXM7fX0saGU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksZzcsTTcsUjc7Zzc9LTM5MDQ0MjA2O003PS0xNjI0Njc4MzI1O1I3PTI7Zm9yKHZhciBKNz0xO3c1LkwxKEo3LnRvU3RyaW5nKCksSjcudG9TdHJpbmcoKS5sZW5ndGgsNTI1MzkpIT09Zzc7SjcrKyl7ZT10aGlzLndlKCk7aT10aGlzLmNpLnVpO1I3Kz0yO31pZih3NS5MMShSNy50b1N0cmluZygpLFI3LnRvU3RyaW5nKCkubGVuZ3RoLDg0NzUzKSE9PU03KXtlPXRoaXMud2UoKTtpPXRoaXMuY2kudWk7fXRyeXsodD1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0oZ3MsZ3UsZ3UseSwxLGlbT2krR3IrVWVdLGlbT2krR3IreG9dLGlbSGMrR3IrVWVdLGlbSGMrR3IreG9dLHl1LHl1LHl1LHl1LDAsbXUpO3RbVW9dPWd1O2VbZ24rR3IrQ2FdKHQpO31jYXRjaCh0KXtLYy5lKHQpO319LFZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUGkobzUpO30sU2k6ZnVuY3Rpb24oKXt2YXIgdCxpLG4scixvLHM7cj10aGlzO289NTAwO3M9ZnVuY3Rpb24odCxlKXt2YXIgaSxuO249WGMuYj9lYzpnczsoaT1yaVtVcytHcitDYV0oU24rR3IrdW8pKVtMcytHcitTbitHcitDYV0obixndSxndSx5LDEsZVtPaStHcitVZV0sZVtPaStHcit4b10sZVtIYytHcitVZV0sZVtIYytHcit4b10seXUseXUseXUseXUsMCxtdSk7aS5mYz1ndTt0W2duK0dyK0NhXShpKTt9O2l1LlgocmksJHQsZnVuY3Rpb24ocil7dmFyIG8sRjEsZzEsTTE7dzUubzQoNCk7bz1yW3c1LnU0KHNyLEdyLGUpXVswXTtGMT05NTkwNTM3NzY7ZzE9LTE3NzY2NDMwNTc7TTE9Mjtmb3IodmFyIFAxPTE7dzUuZDEoUDEudG9TdHJpbmcoKSxQMS50b1N0cmluZygpLmxlbmd0aCw4NTkzNCkhPT1GMTtQMSsrKXt3NS5vNCgxOCk7dD1yW3c1LnU0KG9zLEpzLEdyKV07dzUuWTQoMTkpO2k9b1t3NS51NChHcixmbyxVZSldO3c1Lm80KDIwKTtuPW9bdzUuYzQoeG8sZm8sR3IpXTtNMSs9Mjt9aWYodzUuTDEoTTEudG9TdHJpbmcoKSxNMS50b1N0cmluZygpLmxlbmd0aCwxMTM5OCkhPT1nMSl7dzUubzQoMjEpO3Q9clt3NS5jNChvcyxKcyxHcildO3c1Llk0KDIyKTtpPW9bdzUuYzQoR3IsVWUsZm8pXTt3NS5vNCg2KTtuPW9bdzUuYzQoR3IseG8sZm8pXTt9dzUubzQoNCk7dD1yW3c1LnU0KG9zLEdyLEpzKV07dzUuWTQoNCk7aT1vW3c1LmM0KGZvLEdyLFVlKV07dzUubzQoNCk7bj1vW3c1LnU0KGZvLEdyLHhvKV07fSxndSk7aXUuWChyaSx2LGZ1bmN0aW9uKGEpe3ZhciBjLHUsaCxTMCxOMCxhMDtTMD0xMTI5ODE1NDEyO04wPS00NTk2NDE3MTE7YTA9Mjtmb3IodmFyIGYwPTE7dzUuZDEoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw5MDQxMCkhPT1TMDtmMCsrKXt3NS5vNCg0KTtjPWFbdzUuYzQoc3IsR3IsZSldWzBdO3U9aXUudHQoYSk7aD1yLm10LlllO2EwKz0yO31pZih3NS5MMShhMC50b1N0cmluZygpLGEwLnRvU3RyaW5nKCkubGVuZ3RoLDUxODk1KSE9PU4wKXt3NS5ZNCg2KTtjPWFbdzUudTQoR3IsZSxzcildWzRdO3U9aXUudHQoYSk7aD1yLm10LlllO31kcltGc10oY1tmbytHcitVZV0taSk+PWh8fGRyW0ZzXShjW2ZvK0dyK3hvXS1uKT49aHx8YVtvcytHcitKc10tdD5vfHxyLm10LlllPD0wfHxYYy5odCYmRGlbaXJdKHVbU2MrR3IrbWNdKXx8ci5YZS5paXx8ci5YZS5uaXx8ci5YZS5yaXx8ci5waSgpfHxyLl9pKCl8fCFyLlBpKCl8fCFyLlRpKHUpfHwhci5tdC5OZSYmWmMuUyh1KXx8KHVbU2MrR3IrbWNdPT09T24mJnIuRWUoYSkscyh1LGMpKTt9LGd1KTt9LG1pOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByLG87bz15dTtmb3Iocj0wO3I8dFtwaV07cisrKWlmKHRbcl09PT13dSl7bz1ndTticmVhazt9byYmKGV8fGkpJiYoIXRoaXMuT2koZSx0KXx8IXRoaXMuT2koaSx0KXx8eVtydV1bdW5dJiZ5W3J1XVt1bl1bcGldJiYhdGhpcy5PaShaYy5GKCkseVtydV1bdW5dKSkmJm4oZ3UseXUpO30seGU6e1F0Om11LFM6eXV9LHFlOmZ1bmN0aW9uKCl7dmFyIHQ7dD1aYy54KGFyZ3VtZW50c1swXSk/YXJndW1lbnRzWzBdOmFyZ3VtZW50cztyZXR1cm4gdGhpcy5ubih0LGxjLHRbcGldJiZ0WzBdPT09eXUpO30sd2k6ZnVuY3Rpb24odCxlLGkpe3ZhciBXMSxsMSxjMTtXMT0xMTQ2NjMzOTY5O2wxPTU4MTgzMzU3NjtjMT0yO2Zvcih2YXIgdTE9MTt3NS5kMSh1MS50b1N0cmluZygpLHUxLnRvU3RyaW5nKCkubGVuZ3RoLDY5ODkxKSE9PVcxO3UxKyspe1pjLkcodFtOaV0oR3IrUGUrR3IpKTxlJiZpKGd1LHl1KTtjMSs9Mjt9aWYodzUuZDEoYzEudG9TdHJpbmcoKSxjMS50b1N0cmluZygpLmxlbmd0aCw0ODMyNikhPT1sMSl7WmMuRyh0W05pXShHciVQZSVHcikpPj1lfHxpKGd1LHl1KTt9fSxDaTpmdW5jdGlvbigpe3ZhciByLG8scyxhLGMsdSxoLGYscCxfO2Z1bmN0aW9uIHQoKXt2YXIgdCxlO3c1Lm80KDE3KTtlPVt3NS51NChIbixUdCxHcixFbixHcixDYSxKYSksdzUuYzQoeG4sVHQsR3IsRW4sR3IsQ2EsSmEsdzUubzQoMTcpKSx3NS5jNChKYSxUdCxRYSx3NS5ZNCg0KSksdzUuYzQoQ24sR3IsVXMsbXIsVHQsdzUubzQoMSkpLHc1LnU0KFdlLEdyLHhuLG1yLFR0LHc1Llk0KDEpKV07Zm9yKHQ9MDt0PGVbcGldO3QrKylpZihaYy5sKGVbdF0pKXtyZXR1cm4gS2MuZSh0LFpjLmwoZVt0XSkpLGd1O31yZXR1cm4geXU7fWZ1bmN0aW9uIGkoaSl7dT0yO198fChfPWd1LGlvKGZ1bmN0aW9uKCl7Xz15dTt9LFhjLm90PzUwMDoxNTApLEN1JiYhcC5VZXx8KHI9aXUudHQoaSksbz1aYy5CKHIsT24pLGM9WmMuUyhyKSxyW2FhK0dyK0dpXShsbyk9PT1mdT8oclt4ZV1beHRdPVhpLFpjLlAocikscj1pdS50dChpLGd1KSk6byYmKHM9KHI9bylbYWErR3IrR2ldKFRpKSxhPVpjLk4ociksYz1aYy5TKHIpKSxmLkVpKHIsYyksZi5YZS5paXx8Zi5YZS5uaXx8Zi5YZS5yaXx8aVtVb118fGUoZi5jaS51aVtPXSYmZi5jaS51aVtPXSE9PWlbT10pfHxlKHAuS2UmJiFFdSl8fGUoIWlbSGMrR3IrVWVdJiYhaVtIYytHcit4b10pfHxlKCFYYy5vdCYmIVhjLmcmJnR5cGVvZiBpW3F0XSE9PWdlJiYwIT09aVtxdF0pfHxlKCFYYy5vdCYmIWYuWmUmJihYYy5jdHx8WGMuYnx8WGMudXQpKXx8ZSghWGMub3QmJiFwLkdlJiYoWGMuYnx8WGMudXQpJiZzPT09RmkpfHxlKGYucGkoKSl8fGUoZi5faSgpKXx8ZSghZi5QaSgpKXx8ZSghZi5UaShyKSl8fGUoYyYmIXAuTmUpfHxlKCFwLlJlJiZ0KCkpfHwoZi5BaShpKSxYYy5ldCYmbyYmYSYmZi5FZShpKSxYYy5vdHx8IW98fGN8fChYYy5iJiZzIT09RmkmJlpjLlkoKXx8cC5HZSYmcz09PUZpJiYoWGMuYnx8WGMudXQpKSYmZi5FZShpKSxmLkZpPW11LGYuaGkoKSkpKTt9Zj10aGlzO3A9Zi5tdDtfPXl1O2Z1bmN0aW9uIGUodCl7cmV0dXJuKyt1LHQmJktjLmUodSksdDt9cC5SZXx8IXQoKT8oaD1YYy5kfHxYYy5nP3FhOmVjLGZ1bmN0aW9uKCl7aXUuWChyaSxncyxpLGd1KTtYYy5vdD8oaXUuWChyaSxlYyxuLGd1KSxpdS5YKHJpLHFhLG4sZ3UpKTppdS5YKHJpLGgsbixndSk7fSgpLHRoaXMuU2koKSx0aGlzLmppKCksdGhpcy5MaSgpLHRoaXMuemkoKSx0aGlzLkJpKCkpOktjLmUoeXUpO2Z1bmN0aW9uIG4odCl7cj1vPWM9cz1hPW11OyFYYy5vdCYmdFtIYytHcitVZV0rKFhjLm50PzE3OjE1KT55W1BhK0dyK2ddP3AuUWUmJigocj17fSkuc2Nyb2xsYmFyPWd1LGYuRWkocix5dSksZi5waSgpfHxmLl9pKCl8fCFmLlBpKCl8fGYuaGkoKSk6aSh0KTt9fSxsaTpmdW5jdGlvbih0KXtpZih0aGlzLlhlLmlpfHx0aGlzLlhlLm5pfHx0aGlzLlhlLnJpKXtyZXR1cm4geXU7fXN3aXRjaCh0Lnl0KXtjYXNlIF91Om5ldyBRYy5tZSh0KS5wZSgpO2JyZWFrO2Nhc2UgZHU6bmV3IFFjLmdlKHQpLnBlKCk7YnJlYWs7Y2FzZSBsdTpuZXcgUWMueWUodCkucGUoKTticmVhaztjYXNlIHB1OnRyeXtuZXcoUWMuZHQoKSkodCkucGUoKTt9Y2F0Y2godCl7S2MuZSh0KTt9fXJldHVybiB0LnF0KCksZ3U7fSxqaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj17fTtvPWZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTx0W3BpXTtlKyspe24uTWkodFtlXSk7fX07Q28oZnVuY3Rpb24oKXt2YXIgZTtmb3IodD0wO3Q8bi5tdC4kZVtwaV07dCsrKXtpZihlPW4ubXQuJGVbdF0sKGk9cmlbYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGUpKVtwaV0mJm4ucGkoKXx8IW4uUGkoKSl7cmV0dXJuO310eXBlb2YgcltlXSE9PWdlJiZyW2VdPT09aVtwaV18fG8oaSk7fX0sMWUzKTt9LElpOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxlOSxqOSxaOTtvPTI7cz15dTtmb3IoZT0wO2U8PW87ZSsrKXtpZigobj1yaVt3citHcitqbitHcitMY10odFtIYytHcitVZV0rZSx0W0hjK0dyK3hvXSkpJiZuW1NjK0dyK21jXT09PXBhK0dyK09uK0dyK0ZjK0dyK1BzK0dyK3BhKXtzPWd1O2JyZWFrO31mb3IoaT0wO2k8PW87aSsrKWlmKChuPXJpW3dyK0dyK2puK0dyK0xjXSh0W0hjK0dyK1VlXStlLHRbSGMrR3IreG9dK2kpKSYmbltTYytHcittY109PT1wYStHcitPbitHcitGYytHcitQcytHcitwYSl7cz1ndTticmVhazt9aWYocylicmVhazt9aWYocylmb3Iocz15dSxyPW5bYWErR3IrUmUrR3IraWkrR3IrUmkrR3IrbWNdKGVpKSxlPTA7ZTxyW3BpXTtlKyspaWYoWmMuVShyW2VdKSl7cz1ndTticmVhazt9ZTk9MTI0NjQ2Mzc5O2o5PTE4ODY4MTA5NztaOT0yO2Zvcih2YXIgVTk9MTt3NS5MMShVOS50b1N0cmluZygpLFU5LnRvU3RyaW5nKCkubGVuZ3RoLDU5MDM1KSE9PWU5O1U5Kyspe3JldHVybiBzP246eXU7WjkrPTI7fWlmKHc1LmQxKFo5LnRvU3RyaW5nKCksWjkudG9TdHJpbmcoKS5sZW5ndGgsNDQ5MzkpIT09ajkpe3JldHVybiBzP246eXU7fX0sRGk6ZnVuY3Rpb24oKXtpZighdGhpcy5YZS5laSl7dGhpcy5YZS5laT1ndTt0cnl7dGhpcy52aSgpO3RoaXMuYmkoKTt9Y2F0Y2godCl7fUtjLmUoW3RoaXMuWGUubmk/MDoxLHRoaXMuWGUucmk/MDoxLHRoaXMuWGUueGldW05pXShHcikpO319LFhlOnt0aTp5dSxuaTpndSxlaTp5dSxvaTowLHJpOmd1LHNpOjAsaWk6eXV9LG5uOmZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIG4scj0wLG89ZT09PVJuP3RoaXMubXQuSmU6dGhpcy5tdC5xZTtpJiZvW3BpXTspe29bQnNdKCk7fWZvcig7cjx0W3BpXTtyKyspe3R5cGVvZihuPXRbcl0pPT09VGM/b1tNcl0obik6dHlwZW9mIG49PT1hciYmdHlwZW9mIG5bd2ErR3IrbWNdPT09VGMmJm9bTXJdKG4pO31yZXR1cm4gdGhpczt9LEppOmZ1bmN0aW9uKCl7dmFyIHkxLEgxLHYxLHQsZTt5MT0xNzAzNzYyNDUyO0gxPTEyMTk1OTkwMzk7djE9Mjtmb3IodmFyIEUxPTE7dzUuZDEoRTEudG9TdHJpbmcoKSxFMS50b1N0cmluZygpLmxlbmd0aCwzODk3NykhPT15MTtFMSsrKXtlPTY7Zm9yKHRoaXMuZmk9W107ZT49dGhpcy5XZVtwaV07ZS0tKXsodD10aGlzLldlW2VdKS5MdCgpfHx0aGlzLmZpW01yXSh0KTt9djErPTI7fWlmKHc1LmQxKHYxLnRvU3RyaW5nKCksdjEudG9TdHJpbmcoKS5sZW5ndGgsMjE2MzkpIT09SDEpe2U9MTtmb3IodGhpcy5maT1bXTtlPnRoaXMuV2VbcGldO2UrKyl7KHQ9dGhpcy5XZVtlXSkuTHQoKSYmdGhpcy5maVtNcl0odCk7fX1lPTA7Zm9yKHRoaXMuZmk9W107ZTx0aGlzLldlW3BpXTtlKyspeyh0PXRoaXMuV2VbZV0pLkx0KCkmJnRoaXMuZmlbTXJdKHQpO31yZXR1cm4gdGhpcy5maTt9LGRpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2kudWk7fX07aXUuWCh5LFN0LGZ1bmN0aW9uKCl7dmFyIFg3LEI3LFM3O1g3PTIwMTA5MDA5MDY7Qjc9LTE2OTQwNjQ1NTI7Uzc9Mjtmb3IodmFyIGE3PTE7dzUuTDEoYTcudG9TdHJpbmcoKSxhNy50b1N0cmluZygpLmxlbmd0aCwxNDk3OSkhPT1YNzthNysrKXtFdT0hMTtTNys9Mjt9aWYodzUuZDEoUzcudG9TdHJpbmcoKSxTNy50b1N0cmluZygpLmxlbmd0aCw2MjI0OCkhPT1CNyl7RXU9IXt9O31FdT1vNTt9KTtpbyhmdW5jdGlvbigpe3c1Lm80KDE1KTtLYy5lKHc1LnU0KFNpLFllLEdyLFR0LFllLE0sR3IsWWUsUWUsT3QsQW8pKTt3NS5vNCg0KTtLYy5lKHc1LmM0KHhhLFZ0LEdyKSxvdSk7dzUuWTQoNCk7S2MuZSh3NS5jNChxaSxWdCxHciksc3UpO3c1Lm80KDQpO0tjLmUodzUudTQoRXMsVnQsR3IpLGF1KTt9LDEwKTt5W3J1XT15W3J1XXx8ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG87cj17fTtvPVpjLnAoW1trbytHcitSYStHcitudCxbR2MsR2MuaV1dLFtKbixzdV0sW0d0LG91XSxbWW8rR3IraXMsYXVdLFt6YSxbR2MsR2MuWGkscl1dLFthYStHcitJaSxbR2MsR2MuWmldXSxbYWErR3IrUStHcitiYSxbR2MsR2MuWWldXSxbYWErR3IrX28rR3IrYmEsW0djLEdjLktpXV0sW3crR3IrQ24sW0djLEdjLk1pXV0sW0huLFtHYyxHYy5lbixyXV0sW0duLFtHYyxHYy5oaSxyXV0sW2VzLFtHYyxHYy5HaSxyXV0sW2xjK0dyK2JhLFtHYyxHYy5xZSxyXV0sW1JuK0dyK2JhLFtHYyxHYy5KZSxyXV0sW2FhK0dyK2h0K0dyK0NuLFtHYyxHYy53ZV1dLFthYStHcitubitHcitabyxbR2MsR2MuJGldXSxbYWErR3IreWUrR3IrWm8sW0djLEdjLlZpXV0sW0JhK0dyK3llLFtHYyxHYy5QaV1dLFtrbytHcitkdCtHcitKZSxbR2MsR2MucGldXSxbYWErR3IrVXQrR3IramUrR3IrQmksW0djLEdjLlFpXV0sW2FhK0dyK1V0K0dyK0NhLFtHYyxHYy5kaV1dLFt6aSxbR2MsR2MuTmldXSxbYWErR3IrXyxbR2MsR2MuVWldXSxbRm8rR3IrXyxbR2MsR2MuUmldXSxbaGErVHQrT28sW0tjLEtjLmVdXSxbaGErVHQrRyxbS2MsS2Mucl1dLFtPYStUdCtsaSxbdHUsdHUuYV1dLFtPYStUdCthYSxbdHUsdHUuY11dLFtPYStUdCt4bixbdHUsdHUudV1dLFt0aStUdCtrbytHcitkaSxbZXUsZXUuc11dLFt0aStUdCtsaSxbZXUsZXUuYV1dLFt0aStUdCthYSxbZXUsZXUuY11dLFt0aStUdCt4bixbZXUsZXUudV1dLFtjZStUdCtKbixYYy5wdF0sW2NlK1R0K0lyK0dyK3FpLFhjLmZ0XSxbY2UrVHQra28rR3IrQ3MsWGMuaXRdLFtjZStUdCtrbytHcitYbyxYYy5udF0sW2NlK1R0K2tvK0dyK01hLFhjLm1dLFtjZStUdCtrbytHcit2YStHcitmYytHcit0YyxYYy5ldF0sW2NlK1R0K2tvK0dyK0JuLFhjLnJ0XSxbY2UrVHQra28rR3Irdm4sWGMub3RdLFtjZStUdCtrbytHcitoZSxYYy5zdF0sW2NlK1R0K2tvK0dyK3l0LFhjLmF0XSxbY2UrVHQra28rR3IrZ2MsWGMuYl0sW2NlK1R0K2tvK0dyK0luLFhjLmRdLFtjZStUdCtrbytHcitGYSxYYy5odF0sW2NlK1R0K2tvK0dyK3ZhK0dyK1BzLFhjLmddLFtjZStUdCtrbytHcitjcyxYYy5jdF0sW2NlK1R0K2tvK0dyK0VvLFhjLnV0XSxbY2UrVHQrSm4rR3IrdXQsW1hjLFhjLkpdXSxbY2UrVHQrYW8rR3IrZGksW1hjLFhjLmx0XV0sW0NhK1R0K2xjK0dyK3FzLFtpdSxpdS5LXV0sW0NhK1R0K2xjLFtpdSxpdS5YXV0sW0NhK1R0K2xhLFtpdSxpdS5aXV0sW0NhK1R0K2FhK0dyK3luLFtpdSxpdS50dF1dLFtLZStUdCtrbytHcit2ZStHciskZSxbWmMsWmMud11dLFtLZStUdCtKbitHcit1dCxbWmMsWmMuSl1dLFtLZStUdCtvcyxbWmMsWmMuR11dLFtLZStUdCt3byxbWmMsWmMueV1dLFtLZStUdCtKaSxbWmMsWmMuJF1dLFtLZStUdCtVcytHcitDbixbWmMsWmMuel1dLFtLZStUdCt4bitHcitDbixbWmMsWmMuUF1dLFtLZStUdCthYStHcitVaSxbWmMsWmMuQl1dLFtLZStUdCtEZStHcitZaSxbWmMsWmMuSF1dXSk7Zm9yKGUgaW4gbylpZih5aVtYdF1bQmErR3IrbHQrR3Irb29dW0NpXShvLGUpKXtmb3Iobj1lW0NyXShHcitUdCtHciksdD1yLGk9MDtpPG5bcGldLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PWdlJiYodFtuW2ldXT17fSk7dD10W25baV1dO310W25bbltwaV0tMV1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFpjLngodFtlXSk/MT09PXRbZV1bcGldP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bcGldP3RbZV1bMV1bb2FdKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtvYV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fHpjK0dyK1VjK0dyK09jLHQsdFtFaV0sdFtPaV0sdFttcl0sdFtyb10sdFtibl0sdFtObl0sdFtDb10sdFtyaStHcitpb10sdFtsaStHcitZaV0sdFtNaStHcitZaV0sdFtsaStHcitBaV0sdFtNaStHcitBaV0sdFtMdCtHcit0YytHcitmYytHcitndF0sdFt5K0dyK1J0XSx0W2tvK0dyK3lpK0dyK2d0XSx0W2lzXSx0W1hlK0dyK1ZyK0dyK0dzK0dyK3ZhK0dyK1VyXSx0W2RyXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7CnZhciBfMHgxMzhmPVsnXHg1OFx4NDhceDYzXHg3MicsJ1x4NDlceDU0XHg0NVx4NmZceDY0XHg0M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg2Y1x4NTBceDU0XHg0NVx4NmZceDVhXHg1M1x4NmNceDM3XHg0Zlx4NDNceDQyXHg3NVx4NTBceDU4XHg1MVx4NzVceDYyXHg3OVx4NjdceDY5XHg2Mlx4NTNceDQ5XHg3MFx4NGZceDdhXHg1OVx4NjdceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmRceDc3XHgzOVx4NDlceDZkXHg3M1x4NjlceDRjXHg0N1x4MzRceDc1XHg0ZFx4NjlceDM1XHg3N1x4NTBceDU0XHg0MVx4NzNceDYyXHg2OVx4MzRceDc5XHg0Y1x4NmVceDQ1XHgzOVx4NGRceDQzXHg3OFx4NzVceDRjXHg2YVx4NDlceDc1XHg2NFx4N2FceDMwXHg2OVx4NjFceDY5XHg0OVx4NzNceDYyXHg2OVx4MzVceDMxXHg1MFx4NTNceDQ5XHgzM1x4NGZceDY5XHgzOFx4NzZceDYzXHg2OVx4MzVceDM0XHg0Y1x4NmFceDU1XHg3Nlx4NjFceDQzXHgzOVx4NjhceDRjXHg3OVx4NDlceDcyXHg1YVx4NTNceDc4XHgzMFx4NGNceDZkXHg0OVx4NzVceDYxXHg1M1x4NjhceDc1XHg0Ylx4NTNceDc4XHg3NVx4NjZceDUzXHg3OFx4NzVceDUwXHg1N1x4NGRceDZmXHg1YVx4NzlceDY3XHg2Zlx4NjRceDQzXHgzNVx4NmJceDRjXHg2ZVx4NTlceDZmXHg1MVx4NjlceDQyXHg0Zlx4NGJceDQzXHg0OVx4NmZceDRlXHg3YVx4MzlceDM4XHg1M1x4NjlceDMxXHgzNVx4NGJceDU0XHg3MFx4NjNceDU4XHg0M1x4MzlceDYzXHg1OFx4NDNceDM4XHg2OVx4NGJceDUzXHg3N1x4NjlceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NGNceDc5XHg0OVx4NzBceDU3XHg3YVx4NDJceDY0XHg2Nlx4NDhceDc3XHg2OVx4NTNceDc5XHgzNFx4MzFceDQ5XHg2OVx4NmJceDc1XHg0ZFx4NzlceDY3XHg2OVx4NDlceDY5XHg2Ylx4NzVceDU0XHg0M1x4NjdceDc4XHg0Ylx4NDhceDUxXHg3MFx4NjVceDdhXHg1OVx4NjdceDY0XHg0M1x4MzVceDRlXHg0Ylx4NDRceDQxXHg3MFx4NGNceDZiXHg2M1x4NmZceDUzXHg0M1x4NmNceDM5XHg0Ylx4NTNceDM1XHg0Mlx4NGJceDQzXHg0OVx4NjlceDRiXHg1M1x4NmJceDcwXHg0Zlx4MzNceDZmXHg3NVx4NGVceDQzXHg2N1x4NjlceDUxXHg3OVx4NDlceDczXHg0ZFx4NTNceDY3XHg3MFx4NjVceDMyXHg1NVx4NmZceDYyXHg2OVx4NzNceDY5XHg0Y1x4MzJceDU5XHg3NVx4NGZceDUzXHg0OVx4NzBceDRjXHg2YVx4NTFceDZmXHg0OVx4NmJceDUxXHg2OVx4NGNceDQ0XHg0NVx4NmZceDRiXHg1OFx4NzRceDQ3XHg0Ylx4NDRceDQ1XHg2Zlx4NGJceDU4XHg3NFx4NmNceDRiXHg0N1x4MzRceDcyXHg0OVx4NjlceDM5XHg3YVx4NGNceDZhXHg2Ylx4NjlceDRiXHg1OFx4MzBceDczXHg1Mlx4NTNceDZjXHgzOVx4NGJceDU4XHgzMFx4NzBceDY2XHg1M1x4NjhceDRhXHg0Ylx4NTRceDczXHgzZCcsJ1x4NjNceDMzXHg0Mlx4NzNceDYxXHg1OFx4NTFceDNkJywnXHg1YVx4NmVceDRhXHg3Nlx4NjJceDU1XHg0ZVx4NmZceDU5XHg1OFx4NGFceDQ0XHg2Mlx4MzJceDUyXHg2YycsJ1x4NjRceDQ3XHgzOVx4NTRceDY0XHg0OFx4NGFceDcwXHg2Mlx4NmRceDYzXHgzZCcsJ1x4NjNceDZkXHg1Nlx4NzdceDYyXHg0N1x4NDZceDZhXHg1YVx4NTFceDNkXHgzZCddOyhmdW5jdGlvbihfMHgxYjU5YWMsXzB4MzBkNjA1KXt2YXIgXzB4NDQ1OWM5PWZ1bmN0aW9uKF8weDE0NjhhYyl7d2hpbGUoLS1fMHgxNDY4YWMpe18weDFiNTlhY1sncHVzaCddKF8weDFiNTlhY1snc2hpZnQnXSgpKTt9fTtfMHg0NDU5YzkoKytfMHgzMGQ2MDUpO30oXzB4MTM4ZiwweDEwYikpO3ZhciBfMHgxN2MxPWZ1bmN0aW9uKF8weDE5NzdkYixfMHhjNzlmNjkpe18weDE5NzdkYj1fMHgxOTc3ZGItMHgwO3ZhciBfMHgxNjJkZjI9XzB4MTM4ZltfMHgxOTc3ZGJdO2lmKF8weDE3YzFbJ09NclNxeCddPT09dW5kZWZpbmVkKXsoZnVuY3Rpb24oKXt2YXIgXzB4MjQ3MTY2O3RyeXt2YXIgXzB4NWJkNjI5PUZ1bmN0aW9uKCdyZXR1cm5ceDIwKGZ1bmN0aW9uKClceDIwJysne30uY29uc3RydWN0b3IoXHgyMnJldHVyblx4MjB0aGlzXHgyMikoXHgyMCknKycpOycpO18weDI0NzE2Nj1fMHg1YmQ2MjkoKTt9Y2F0Y2goXzB4MzI5NWIwKXtfMHgyNDcxNjY9d2luZG93O312YXIgXzB4MjgzY2U5PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSc7XzB4MjQ3MTY2WydhdG9iJ118fChfMHgyNDcxNjZbJ2F0b2InXT1mdW5jdGlvbihfMHgzNDFiMTkpe3ZhciBfMHgxNDRmOTY9U3RyaW5nKF8weDM0MWIxOSlbJ3JlcGxhY2UnXSgvPSskLywnJyk7Zm9yKHZhciBfMHgyOGE3NWU9MHgwLF8weDU5Y2I1YixfMHgxZTA5M2QsXzB4NTFlZmE2PTB4MCxfMHg5MjJhYWM9Jyc7XzB4MWUwOTNkPV8weDE0NGY5NlsnY2hhckF0J10oXzB4NTFlZmE2KyspO35fMHgxZTA5M2QmJihfMHg1OWNiNWI9XzB4MjhhNzVlJTB4ND9fMHg1OWNiNWIqMHg0MCtfMHgxZTA5M2Q6XzB4MWUwOTNkLF8weDI4YTc1ZSsrJTB4NCk/XzB4OTIyYWFjKz1TdHJpbmdbJ2Zyb21DaGFyQ29kZSddKDB4ZmYmXzB4NTljYjViPj4oLTB4MipfMHgyOGE3NWUmMHg2KSk6MHgwKXtfMHgxZTA5M2Q9XzB4MjgzY2U5WydpbmRleE9mJ10oXzB4MWUwOTNkKTt9cmV0dXJuIF8weDkyMmFhYzt9KTt9KCkpO18weDE3YzFbJ3hqcWtERiddPWZ1bmN0aW9uKF8weDMzNzcxOCl7dmFyIF8weDVkZGIxNT1hdG9iKF8weDMzNzcxOCk7dmFyIF8weDU2MGI5NT1bXTtmb3IodmFyIF8weGM5N2Y5MT0weDAsXzB4NDQxODcyPV8weDVkZGIxNVsnbGVuZ3RoJ107XzB4Yzk3ZjkxPF8weDQ0MTg3MjtfMHhjOTdmOTErKyl7XzB4NTYwYjk1Kz0nJScrKCcwMCcrXzB4NWRkYjE1WydjaGFyQ29kZUF0J10oXzB4Yzk3ZjkxKVsndG9TdHJpbmcnXSgweDEwKSlbJ3NsaWNlJ10oLTB4Mik7fXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoXzB4NTYwYjk1KTt9O18weDE3YzFbJ2tEbUhTayddPXt9O18weDE3YzFbJ09NclNxeCddPSEhW107fXZhciBfMHgzMDY0MDU9XzB4MTdjMVsna0RtSFNrJ11bXzB4MTk3N2RiXTtpZihfMHgzMDY0MDU9PT11bmRlZmluZWQpe18weDE2MmRmMj1fMHgxN2MxWyd4anFrREYnXShfMHgxNjJkZjIpO18weDE3YzFbJ2tEbUhTayddW18weDE5NzdkYl09XzB4MTYyZGYyO31lbHNle18weDE2MmRmMj1fMHgzMDY0MDU7fXJldHVybiBfMHgxNjJkZjI7fTtldmFsKGZ1bmN0aW9uKF8weDQ5YjJlOSxfMHgxMDY5MzUsXzB4MjIzZDU2LF8weDJmZjZlOSxfMHhlZDdkMjYsXzB4M2JjNTAwKXtfMHhlZDdkMjY9ZnVuY3Rpb24oXzB4MjZiYjgyKXtyZXR1cm4oXzB4MjZiYjgyPF8weDEwNjkzNT8nJzpfMHhlZDdkMjYocGFyc2VJbnQoXzB4MjZiYjgyL18weDEwNjkzNSkpKSsoKF8weDI2YmI4Mj1fMHgyNmJiODIlXzB4MTA2OTM1KT4weDIzP1N0cmluZ1tfMHgxN2MxKCcweDAnKV0oXzB4MjZiYjgyKzB4MWQpOl8weDI2YmI4MltfMHgxN2MxKCcweDEnKV0oMHgyNCkpO307aWYoIScnW18weDE3YzEoJzB4MicpXSgvXi8sU3RyaW5nKSl7d2hpbGUoXzB4MjIzZDU2LS0pe18weDNiYzUwMFtfMHhlZDdkMjYoXzB4MjIzZDU2KV09XzB4MmZmNmU5W18weDIyM2Q1Nl18fF8weGVkN2QyNihfMHgyMjNkNTYpO31fMHgyZmY2ZTk9W2Z1bmN0aW9uKF8weDMyMDdmNil7cmV0dXJuIF8weDNiYzUwMFtfMHgzMjA3ZjZdO31dO18weGVkN2QyNj1mdW5jdGlvbigpe3JldHVybiBfMHgxN2MxKCcweDMnKTt9O18weDIyM2Q1Nj0weDE7fTt3aGlsZShfMHgyMjNkNTYtLSl7aWYoXzB4MmZmNmU5W18weDIyM2Q1Nl0pe18weDQ5YjJlOT1fMHg0OWIyZTlbXzB4MTdjMSgnMHgyJyldKG5ldyBSZWdFeHAoJ1x4NWNceDYyJytfMHhlZDdkMjYoXzB4MjIzZDU2KSsnXHg1Y1x4NjInLCdceDY3JyksXzB4MmZmNmU5W18weDIyM2Q1Nl0pO319cmV0dXJuIF8weDQ5YjJlOTt9KF8weDE3YzEoJzB4NCcpLDB4MzIsMHgzMiwnXHg3Y1x4NjZceDc1XHg2ZVx4NjNceDc0XHg2OVx4NmZceDZlXHg3Y1x4NzNceDc0XHg3OVx4NmNceDY1XHg3Y1x4NzNceDcwXHg2Y1x4NjlceDc0XHg3Y1x4NjFceDY0XHg2NFx4NDVceDc2XHg2NVx4NmVceDc0XHg0Y1x4NjlceDczXHg3NFx4NjVceDZlXHg2NVx4NzJceDdjXHg2M1x4NmZceDZkXHg3Y1x4NzJceDY1XHg3NFx4NzVceDcyXHg2ZVx4N2NceDY4XHg3NFx4NzRceDcwXHg3M1x4N2NceDc2XHg2MVx4NzJceDdjXHg3MFx4NmVceDY3XHg3Y1x4NzBceDc0XHg3Y1x4NjJceDZmXHg2NFx4NzlceDdjXHg2NVx4NmVceDYzXHg2Zlx4NjRceDY1XHg1NVx4NTJceDQ5XHg0M1x4NmZceDZkXHg3MFx4NmZceDZlXHg2NVx4NmVceDc0XHg3Y1x4NzJceDY1XHg2Nlx4NjVceDcyXHg3Mlx4NjVceDcyXHg3Y1x4N2NceDdjXHg2Mlx4NzRceDZmXHg2MVx4N2NceDc2XHgzMVx4N2NceDYxXHg3MFx4NzBceDY1XHg2ZVx4NjRceDQzXHg2OFx4NjlceDZjXHg2NFx4N2NceDZlXHg2Zlx4NmVceDY1XHg3Y1x4NjFceDYyXHg3M1x4NmZceDZjXHg3NVx4NzRceDY1XHg3Y1x4NzBceDZmXHg3M1x4NjlceDc0XHg2OVx4NmZceDZlXHg3Y1x4NjlceDZkXHg2N1x4N2NceDdjXHg2M1x4NzJceDY1XHg2MVx4NzRceDY1XHg0NVx4NmNceDY1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDc0XHg2Zlx4NzBceDdjXHg2Y1x4NjVceDY2XHg3NFx4N2NceDYxXHg3MFx4NjlceDdjXHg3Y1x4N2NceDczXHg3Mlx4NjNceDdjXHg3Mlx4NjVceDcwXHg2Y1x4NjFceDYzXHg2NVx4N2NceDcwXHg2Zlx4NjlceDZlXHg3NFx4NjVceDcyXHg0NVx4NzZceDY1XHg2ZVx4NzRceDczXHg3Y1x4NjNceDZjXHg2OVx4NjNceDZiXHg2MVx4NjlceDZlXHg2NVx4N2NceDYxXHg3MFx4NzBceDdjXHg3N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3Y1x4NmFceDZmXHg2OVx4NmVceDdjXHg2ZVx4NjVceDc3XHg3Y1x4NDRceDRmXHg0ZFx4NDNceDZmXHg2ZVx4NzRceDY1XHg2ZVx4NzRceDRjXHg2Zlx4NjFceDY0XHg2NVx4NjRceDdjXHg2Y1x4NmZceDYxXHg2NFx4N2NceDM1XHg2NVx4MzNceDdjXHg3M1x4NjVceDc0XHg1NFx4NjlceDZkXHg2NVx4NmZceDc1XHg3NFx4N2NceDc0XHg2Zlx4NTNceDc0XHg3Mlx4NjlceDZlXHg2N1x4N2NceDMxXHgzNlx4N2NceDY0XHg2Zlx4NjNceDc1XHg2ZFx4NjVceDZlXHg3NFx4N2NceDYxXHg2ZVx4NjRceDcyXHg2Zlx4NjlceDY0XHg3Y1x4NjRceDZmXHg3NFx4N2NceDZkXHg2MVx4NzBceDdjXHg2M1x4NjhceDYxXHg3Mlx4NDNceDZmXHg2NFx4NjVceDQxXHg3NFx4N2NceDUyXHg2NVx4NjdceDQ1XHg3OFx4NzAnW18weDE3YzEoJzB4NScpXSgnXHg3YycpLDB4MCx7fSkpOwo7IShmdW5jdGlvbiAod2luZG93KSB7CiAgaWYgKHdpbmRvdy5jSVBvcCAhPT0gdW5kZWZpbmVkKSB7CiAgICByZXR1cm4KICB9CiAgdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKICB2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQogIHZhciBzZXNzaW9uU3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZQoKICBmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CiAgICB0aGlzLnN0YXJ0ZWRBdEtleSA9IG9wdGlvbnMuc3RhcnRlZEF0S2V5CiAgICB0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQogICAgdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKICAgIHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX2xwJwogICAgdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQogICAgdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKICAgIHRoaXMubGltaXRQZXJQYWdlID0gb3B0aW9ucy5saW1pdFBlclBhZ2UKICAgIHRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwogICAgICBpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKICAgICAgfQogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCiAgICB9CiAgfQoKICBQb3B1bmRlci5wcm90b3R5cGUuaXNBbGxvd2VkID0gZnVuY3Rpb24gKCkgewogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAogICAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgfQogICAgfQogICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKICAgICAgdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICB2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCB8fCBub3cgLSBzdGFydGVkQXQgPiB0aGlzLmZyZXF1ZW5jeSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgMCkKICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgMCkKICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pbmNyZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBzZXNzaW9uSW1wcmVzc2lvbnMgKyAxKQogICAgfQogICAgdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCBpbXByZXNzaW9ucyArIDEpCiAgICB2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAogICAgaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgc2VsZiA9IHRoaXMKICAgIHZhciBpZ25vcmVUbyA9ICcnCiAgICB2YXIgYmluZFRvID0gJycKICAgIHZhciByZWxvYWQgPSBmYWxzZQogICAgYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKICAgICAgY292ZXJUYWdzOiBbJ3ZpZGVvJywgJ2lmcmFtZSddLAogICAgICB3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCiAgICAgIHRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAogICAgICBpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgYmluZFRvOiBiaW5kVG8gPyBiaW5kVG8uc3BsaXQoJywnKSA6IG51bGwsCiAgICAgIGRlbGF5OiAxCiAgICB9KQogICAgYmV0dGVyUG9wdW5kZXIuYWRkKHVybCwgewogICAgICBuZXdUYWI6IHRydWUsCiAgICAgIGRldmljZTogJ2FueScsCiAgICAgIHVuZGVyOiB0cnVlLAogICAgICBjb29raWVFeHBpcmVzOiAxLAogICAgICBzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKICAgICAgfSwKICAgICAgYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewogICAgICAgIHNlbGYuaW5jcmVtZW50KCkKICAgICAgfSwKICAgICAgYWZ0ZXJPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICB9CiAgICB9KQogIH0KCiAgd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewogICAgdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKICAgICAgc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCiAgICAgIGltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKICAgICAgZnJlcXVlbmN5OiAyMTYwMCwKICAgICAgbGltaXQ6IDEsCiAgICAgIGxpbWl0UGVyUGFnZTogMCwKICAgICAgbGltaXRQZXJTZXNzaW9uOiAwCiAgICB9KQogICAgcG9wdW5kZXIuYWRkKHVybCkKICB9Cn0pKHdpbmRvdykK(Line 1) Message:
console.clear
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
[object HTMLDivElement]
|
console-api | log |
URL: https://popmyads.com/x/pma(Line 2) Message:
console.clear
|
Security Headers
This page lists any security headers set by the main page. If you want to understand what these mean and how to use them, head on over to this page
Header | Value |
---|---|
X-Frame-Options | SAMEORIGIN |
Indicators
This is a term in the security industry to describe indicators such as IPs, Domains, Hashes, etc. This does not imply that any of these indicate malicious activity.
ads.exoclick.com
ads.exosrv.com
c.adsco.re
c1.popads.net
ca.clcknads.pro
cdn.popcash.net
cdn.popmyads.com
code.ionicframework.com
code.jquery.com
dcba.popcash.net
fonts.googleapis.com
fonts.gstatic.com
gateway.ipfs.io
givemejav.com
main.exosrv.com
maxcdn.bootstrapcdn.com
popmyads.com
serve.popads.net
statdynamic.com
static.exosrv.com
syndication.exoclick.com
syndication.exosrv.com
www.givemejav.com
www.google-analytics.com
195.181.174.9
205.185.208.52
209.197.3.15
216.21.13.10
2602:fea2:1:81::
2606:4700:20::6819:7b63
2606:4700:20::6819:7c63
2606:4700:30::6812:2af9
2606:4700:30::6812:2bf9
2606:4700:30::6818:6ba6
2606:4700:30::681b:a51e
2606:4700::6811:a7ba
2a00:1450:4001:824::2003
2a00:1450:4001:824::200a
2a00:1450:4001:824::200e
54.87.177.236
68.232.35.133
88.208.9.35
94.31.29.128
95.211.229.245
95.211.229.246
05b85d96f41fff14d8f608dad03ab71e2c1017c2da0914d7c59291bad7a54f8e
0ca588365824625bcfbdec44c51dd3ebf384da0204211b08581e1a086640cf8a
157c4fa721442be1d5dd48560d8e8e27e2e03a2021e7549be520499485e783c1
18892974e756f0b15dd1894b7e37bbf0ba844a21c0b6b0b6f504724068022bd7
19e1c4c97917724cacf9f2e3c544ed0925a14ef28a79565b7bae38fc70ac82f2
19ee839bc4f979a444a74f31cbe0bdee3c3a8c5aab13cc97415e5d4302e433ce
250642837ad6a670281f3f0a053ecee4e1ad4aeee4e3a8830181d9d71804e47f
2979f9a6e32fc42c3e7406339ee9fe76b31d1b52059776a02b4a7fa6a4fd280a
2f83d0bb492e6da654692a2398f21c09c03a6408e88c1b335fd165db0ae60e25
30523bc258e465e002caa8bb065b65a9fb808b62cd1a4c2d4b469a36d94152ed
351dba2b7c26fad341c036123c4211831630917f602d8b65d34407c5d068b0dd
380e66871a472c449145dbd3db5fb594f11a82b0172a5aaa27d85228d18b557e
3ee5fcab6982d8e5f6f09e46568b3045d0db8576c35cf079c094ea48e4aa0690
46cc2a8b937e158ef7b58afa74d0192801506f4a2c2bff0321ad4bb6a4670004
4939eae39bb1a36e8e7eb18ba7260138ef13d65965cb723e50516d1c89f43d06
4a857691cb98be81b1734bd18180d15ae0b6868ec4acf13cc9d07ec101d4660f
4bb1f2bb7e95a48ee696de5105d78fd2f258536cb19f668918e69a598726a42b
4c973587224baf0274349912ee94c36a550f35cbbd7334f5c26ee0d2e581b657
524c6f46de88a871c0d100f81408c6b73d4a611fa672139ba7a8e995cdf83952
563535724bb78dc140289ea9efea881946d88d7f24ca0a8bb54d69d0232ef6e4
597dfe69f97ab783d8e58e89e74d6d439c613d1e70daa92f8045ed50ebe67a6c
5a0f7592e96787285a9342bc71b60426576ddfc2800a585b8bbcb1f75b90bdfd
5a3f1dd74233f605e511f1b5b244bedf85ac88ba264caf4d6401bc7ec2017dcd
5bceb148ebb29bd68889d161df79c5b94864c8e3ee55f9780ea1a50361ef0d50
5e700835ec05293a3d0f9e354e7d038319d34521cd279e782198dff6d1dd58f2
5f337f92c11efbc43b1c170ce4c12c4b550377e542c1e4ee2178c2dc6cb5cf51
6659984fd64ddf715a345cfea92e11ff7ff1311709b2b046306dc7093a289b9a
66fb37f0a348652be4f1afc6bd5bbfa1de656d8ed495d3ddd9c19fa84d448cb1
679393d7154495e7f8d610ac79013b48a4957af64343d1b77f33bd555aa7c60d
7460a51cf3e648c6e7a64e4dcb473e4ff926bef3d6b82995a6ba75d02e2d855e
7f405c028e030e8d5ceb7a4f4ea6e09269c8b6d6541c41484ffe1b5d22c9b048
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
857a774c3a18ab2f252b5b4f92ab90e1d7e9b9b1b534875f007e0f6a6cb77a61
880adcc066f9bc84b9476e274d3ed2c37703165c0c0aa6c976723b028e8c5b07
891419f946df422b905ea2718b79de7caeeda23db1bec83336118592e9338648
92ac508220f5bb60ec94e07650528eb66625f82a4740ada068cde05365781286
9d02d662da8a47fb5fb610b545007507b6017028043dbb63cd09ec897d3b9627
9d223c78f79534477ee1da849c39fa8d49b7df9e27ef3587ec3a085ea3c1117f
a26fd52082f9c6c191e6f75ca86d82544f74ec979da9c64406a89bea6247a9e9
a27edba0e34b2648a90a800ae94fdef3e39016d1b9bd6e54a31ede1f1cddfed0
a36d46ceb2f6c8a636227f7ef04c842cdd72db093d51617c6942b60bec446920
a6bdfcd47d10e9491b11ac64c8000b525b1dfb3d7590668bc4637f05a50f183b
a9ceb73f02fd30b79868e03e646e359f4cffd4cd5922dabd7ce79a0a4fef1253
b688a3bcd1297cc0fe08e6e52fea14ba9108ee4b9a2052c03e7bac6e19347255
b7e64b3ef88bd7f19331fd15f05bab48ea1b377c185de2219c81381d12e05837
b7f573e089fa20f9f1cc523f502416bb2df0582a5e7665138e47841820604f46
be06cee347498997d696c3d72c972214543f4108d6283ae93727058c856bb221
bf454e92a043b1614355a71d8c45fdc30b6d693b00548ec9abfcd0046cc80b3b
c1041ae73b87637f6103d88bc940ae635ebc0e4aa98bc7bdd95b85cba9def4aa
c5e21dc7ea75409d95b40ea677bd6eccd2d9ff3950fce8c55230dcbb3de8b560
c9df53a64ab63f8fb93d585c37386f3d16bd6c3ac75fdc6b8d3393e7de9b63b1
d5b1b357054bdaee83bdd761ec56bbfd3d754eceb73568e4be6cdccf5614aef6
dae61547d8d6ca63cb693d3f0b8f682bdfd1ce13ba64b2c85b55fb983aca0198
dfb9498e99df31c91fcb37341a78fdc0e68740fcfc339516d80561683c9e89e4
e3109e55f0e8793c915798123861a0e9432e8d05a0032f467e7ccfe6aebf6c1f
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
e53958ea7556d07c3cd32670c97089812713eabfee1128191c9730b500b53864
ed530d322b3a383addfe4029cc9bcfbfa88410adc9aa7862f72efc226422bc3a
eece6e0c65b7007ab0eb1b4998d36dafe381449525824349128efc3f86f4c91c
ef4e44f7c5fb798d8787fd3ad4bdd1b351947a3520a213ddc72d91abe265d153
f3cf86046748fe91cf89243476126804cb5b502d7d00589865e3915771c41298
f45a718f2ad73832f02b726bf19c0bcc7eb0d4fb192af7f0d438ea58ac3ba32d
f54b6828d572dd5edf6d660ca918fcea6bbcab3f47275b610716d31fda3e647a
f73ee95acdf7312f74eac2533b9180398aba654a15c0744cdba22dae99800b0e
fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c
fefc31fe8b6a75aa50147bc062e2ed750e20c8d78fb24a02342c17f15f2f261a