Submitted URL: http://givemejav.com/
Effective URL: http://www.givemejav.com/
Submission: On November 26 via api from US

Summary

This website contacted 26 IPs in 7 countries across 19 domains to perform 92 HTTP transactions. The main IP is 2606:4700:30::6812:2bf9, located in United States and belongs to CLOUDFLARENET - Cloudflare, Inc., US. The main domain is www.givemejav.com.
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 3 2606:4700:30:... 13335 (CLOUDFLAR...)
2 2606:4700:30:... 13335 (CLOUDFLAR...)
3 209.197.3.15 20446 (HIGHWINDS3)
1 2606:4700:20:... 13335 (CLOUDFLAR...)
1 2a00:1450:400... 15169 (GOOGLE)
1 94.31.29.128 33438 (HIGHWINDS2)
1 2 2606:4700:e0:... 13335 (CLOUDFLAR...)
32 2602:fea2:1:78:: 40680 (PROTOCOL)
2 2606:2800:234... 15133 (EDGECAST)
1 205.185.208.52 20446 (HIGHWINDS3)
1 2606:4700:30:... 13335 (CLOUDFLAR...)
8 88.208.9.35 39572 (ADVANCEDH...)
1 52.4.72.68 14618 (AMAZON-AES)
5 2a00:1450:400... 15169 (GOOGLE)
2 2a00:1450:400... 15169 (GOOGLE)
1 2606:4700:20:... 13335 (CLOUDFLAR...)
4 95.211.229.245 60781 (LEASEWEB-...)
4 95.211.229.246 60781 (LEASEWEB-...)
1 185.59.220.22 60068 (CDN77)
1 69.89.69.120 558 (NNEXT)
1 216.21.13.11 53334 (TUT-AS)
1 2606:4700::68... 13335 (CLOUDFLAR...)
2 93.93.51.191 34655 (DOCLER-AS)
3 93.93.51.190 34655 (DOCLER-AS)
3 69.89.69.121 558 (NNEXT)
92 26
Domain Requested by
32 gateway.ipfs.io www.givemejav.com
8 ca.clcknads.pro www.givemejav.com
ca.clcknads.pro
6 syndication.exoclick.com ads.exoclick.com
5 www.google-analytics.com www.givemejav.com
4 engine.phn.doublepimp.com ca.clcknads.pro
4 www.givemejav.com www.givemejav.com
3 galleryn3.awemwh.com
3 maxcdn.bootstrapcdn.com www.givemejav.com
2 pt.ptawe.com ca.clcknads.pro
2 syndication.exosrv.com ads.exosrv.com
2 fonts.gstatic.com www.givemejav.com
2 code.ionicframework.com www.givemejav.com
1 c.adsco.re serve.popads.net
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
92 25

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.com
Google Internet Authority G3
2018-10-30 -
2019-01-22
3 months crt.sh
engine.doublepimp.com
Go Daddy Secure Certificate Authority - G2
2018-07-22 -
2019-09-20
a year crt.sh
pt.ptawe.com
Let's Encrypt Authority X3
2018-11-16 -
2019-02-14
3 months crt.sh
*.awemwh.com
AlphaSSL CA - SHA256 - G2
2018-04-10 -
2019-04-11
a year crt.sh

This page contains 13 frames:

Primary Page: http://www.givemejav.com/
Frame ID: 56A2AE05342A987DDF8F71AB2B3A91B5
Requests: 84 HTTP requests in this frame

Frame: http://ca.clcknads.pro/v2/a/ban/iframe/24955
Frame ID: DAFDBF7AA3434476D4523F01BD91B425
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=1543195344059&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 21D0FC3AD1622597F2F3A2734E351E1F
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=1543195344061&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 5A058A392D0412F01709C52C8A139EE5
Requests: 1 HTTP requests in this frame

Frame: http://ca.clcknads.pro/v2/a/ban/iframe/24956
Frame ID: AA6FE571AA4D0BCA4280618A3E7872AE
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=1543195344116&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: BBA6897A2FF79184B88AF54AEAE0BC3D
Requests: 1 HTTP requests in this frame

Frame: http://ca.clcknads.pro/v2/a/ban/iframe/24957
Frame ID: 55BD4243D915EEFDC543CE6C5F966980
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=1543195344218&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: CB4D7FBB5D28EFCD3C078AFBFD42B542
Requests: 1 HTTP requests in this frame

Frame: http://ca.clcknads.pro/v2/a/ban/iframe/24958
Frame ID: D4077CE5C2497D01A50B198D5FA9558D
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=1543195344276&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 42D8B239F40A5F245FE9FAA82544B2C7
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=1543195344320&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: A514B6DBDE462B3E947C30BDA9DF6889
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=1543195344326&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 0E76283DD1ADDEC408354188DCF82390
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=1543195344329&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 18EDF20FBE5BD13AE7FC8F6472927749
Requests: 1 HTTP requests in this frame

Screenshot


Page URL History Show full URLs

  1. http://givemejav.com/ HTTP 302
    http://www.givemejav.com/ Page URL

Detected technologies

Overall confidence: 100%
Detected patterns
  • headers server /cloudflare/i

Overall confidence: 100%
Detected patterns
  • script /google-analytics\.com\/(?:ga|urchin|(analytics))\.js/i
  • env /^gaGlobal$/i

Overall confidence: 100%
Detected patterns
  • html /<link[^>]* href=[^>]+fonts\.(?:googleapis|google)\.com/i

Overall confidence: 100%
Detected patterns
  • html /<link[^>]* href=[^>]+ionicons(?:\.min)?\.css/i

Overall confidence: 100%
Detected patterns
  • env /^jQuery$/i

Overall confidence: 100%
Detected patterns
  • html /<link[^>]+?href="[^"]+bootstrap(?:\.min)?\.css/i

Page Statistics

92
Requests

58 %
HTTPS

48 %
IPv6

19
Domains

25
Subdomains

26
IPs

7
Countries

2018 kB
Transfer

5754 kB
Size

4
Cookies

Page URL History

This captures the URL locations of the websites, including HTTP redirects and client-side redirects via JavaScript or Meta fields.

  1. 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

92 HTTP transactions

Resource
Path
Size
x-fer
Type
MIME-Type
Primary Request /
www.givemejav.com/
Redirect Chain
  • http://givemejav.com/
  • http://www.givemejav.com/
61 KB
13 KB
Document
General
Full URL
http://www.givemejav.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2bf9 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
df4f0b02edb073f63a2c7394f1d912529fc59356bb54ce0d46243cc9d6140984
Security Headers
Name Value
X-Frame-Options SAMEORIGIN

Request headers

Host
www.givemejav.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding
gzip, deflate
Cookie
__cfduid=d65048c89d949b02d8deeaf23a32a28601543195342
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Mon, 26 Nov 2018 01:22:23 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
X-Frame-Options
SAMEORIGIN
Server
cloudflare
CF-RAY
47f88b2c30f59786-FRA
Content-Encoding
gzip

Redirect headers

Date
Mon, 26 Nov 2018 01:22:22 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Set-Cookie
__cfduid=d65048c89d949b02d8deeaf23a32a28601543195342; expires=Tue, 26-Nov-19 01:22:22 GMT; path=/; domain=.givemejav.com; HttpOnly
Location
http://www.givemejav.com/
X-Served-By
Namecheap URL Forward
Server
cloudflare
CF-RAY
47f88b2a1317c2b5-FRA
bootstrap.min.css
maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/
118 KB
19 KB
Stylesheet
General
Full URL
https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
209.197.3.15 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip0x00f.map2.ssl.hwcdn.net
Software
/
Resource Hash
eece6e0c65b7007ab0eb1b4998d36dafe381449525824349128efc3f86f4c91c

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/
Origin
http://www.givemejav.com

Response headers

date
Mon, 26 Nov 2018 01:22:23 GMT
content-encoding
gzip
last-modified
Tue, 20 Feb 2018 05:57:55 GMT
status
200
etag
"1519106275"
vary
Accept-Encoding
x-cache
HIT
content-type
text/css; charset=utf-8
access-control-allow-origin
*
cache-control
max-age=31536000
x-hello-human
Say hello back! @getBootstrapCDN on Twitter
accept-ranges
bytes
content-length
19747
ionicons.min.css
code.ionicframework.com/ionicons/2.0.1/css/
50 KB
9 KB
Stylesheet
General
Full URL
http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Server
2606:4700:20::6819:7c63 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
92ac508220f5bb60ec94e07650528eb66625f82a4740ada068cde05365781286

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

X-Fastly-Request-ID
c0cfd445f6ff5f371d0923f3da10b0f22a2c274a
Date
Mon, 26 Nov 2018 01:22:23 GMT
Content-Encoding
gzip
CF-Cache-Status
MISS
Access-Control-Allow-Origin
*
X-Cache
HIT
X-Cache-Hits
4
Connection
keep-alive
Content-Length
8313
X-Served-By
cache-fra19147-FRA
Last-Modified
Thu, 23 Aug 2018 20:38:22 GMT
Server
cloudflare
X-GitHub-Request-Id
1F92:7A2B:3C465D:4F5A6E:5BF12F73
X-Timer
S1543195344.839276,VS0,VE0
ETag
W/"5b7f1b3e-c854"
Vary
Accept-Encoding
Content-Type
text/css; charset=utf-8
Via
1.1 varnish
Cache-Control
public, max-age=7200
Accept-Ranges
bytes
CF-RAY
47f88b32f34e9738-FRA
Expires
Mon, 26 Nov 2018 03:22:23 GMT
style.css
www.givemejav.com/static/giveme/css/
9 KB
2 KB
Stylesheet
General
Full URL
http://www.givemejav.com/static/giveme/css/style.css
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2af9 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
563535724bb78dc140289ea9efea881946d88d7f24ca0a8bb54d69d0232ef6e4

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
www.givemejav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/css,*/*;q=0.1
Referer
http://www.givemejav.com/
Cookie
__cfduid=d65048c89d949b02d8deeaf23a32a28601543195342
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Mon, 26 Nov 2018 01:22:23 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Fri, 23 Mar 2018 06:32:07 GMT
Server
cloudflare
ETag
W/"5ab49f67-25bc"
Vary
Accept-Encoding
Content-Type
text/css
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
47f88b32d25abefd-FRA
Expires
Mon, 26 Nov 2018 05:22:23 GMT
css
fonts.googleapis.com/
4 KB
684 B
Stylesheet
General
Full URL
https://fonts.googleapis.com/css?family=Oswald:400,300,700
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4001:819::200a , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
ESF /
Resource Hash
dae61547d8d6ca63cb693d3f0b8f682bdfd1ce13ba64b2c85b55fb983aca0198
Security Headers
Name Value
Strict-Transport-Security max-age=604800
X-Frame-Options SAMEORIGIN
X-Xss-Protection 1; mode=block

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

strict-transport-security
max-age=604800
content-encoding
gzip
last-modified
Mon, 26 Nov 2018 01:22:23 GMT
server
ESF
link
<https://fonts.gstatic.com>; rel=preconnect; crossorigin
status
200
date
Mon, 26 Nov 2018 01:22:23 GMT
x-frame-options
SAMEORIGIN
content-type
text/css; charset=utf-8
access-control-allow-origin
*
cache-control
private, max-age=86400, stale-while-revalidate=604800
timing-allow-origin
*
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
x-xss-protection
1; mode=block
expires
Mon, 26 Nov 2018 01:22:23 GMT
pop.js
cdn.popcash.net/
64 KB
26 KB
Script
General
Full URL
http://cdn.popcash.net/pop.js
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Server
94.31.29.128 , United Kingdom, ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US),
Reverse DNS
94.31.29.128.IPYX-077437-ZYO.above.net
Software
NetDNA-cache/2.2 /
Resource Hash
f3cf86046748fe91cf89243476126804cb5b502d7d00589865e3915771c41298

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Mon, 26 Nov 2018 01:22:23 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Thu, 18 Oct 2018 12:33:42 GMT
Server
NetDNA-cache/2.2
ETag
W/"5bc87da6-10156"
Vary
Accept-Encoding
X-Cache
HIT
Content-Type
application/javascript
Cache-Control
max-age=86400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
46da624ae7519c35-AMS
Expires
Tue, 27 Nov 2018 01:22:23 GMT
pma
popmyads.com/x/
Redirect Chain
  • https://cdn.popmyads.com/pma.js
  • https://popmyads.com/x/pma
66 KB
26 KB
Script
General
Full URL
https://popmyads.com/x/pma
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2606:4700:e0::ac40:6b12 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare / PHP/7.1.16
Resource Hash
e53958ea7556d07c3cd32670c97089812713eabfee1128191c9730b500b53864

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:23 GMT
content-encoding
gzip
server
cloudflare
x-powered-by
PHP/7.1.16
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
content-type
text/html; charset=UTF-8
status
200
cf-ray
47f88b334a2664c3-FRA

Redirect headers

date
Mon, 26 Nov 2018 01:22:23 GMT
cf-cache-status
HIT
server
cloudflare
status
301
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
vary
Accept-Encoding
content-type
text/html; charset=iso-8859-1
location
https://popmyads.com/x/pma
cache-control
public, max-age=14400
cf-ray
47f88b331a2064c3-FRA
expires
Mon, 26 Nov 2018 05:22:23 GMT
givemejav.png
www.givemejav.com/static/giveme/img/
3 KB
3 KB
Image
General
Full URL
http://www.givemejav.com/static/giveme/img/givemejav.png
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2af9 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
5a0f7592e96787285a9342bc71b60426576ddfc2800a585b8bbcb1f75b90bdfd

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
www.givemejav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.givemejav.com/
Cookie
__cfduid=d65048c89d949b02d8deeaf23a32a28601543195342
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Mon, 26 Nov 2018 01:22:23 GMT
CF-Cache-Status
HIT
Last-Modified
Fri, 23 Mar 2018 06:32:07 GMT
Server
cloudflare
ETag
"5ab49f67-ade"
Vary
Accept-Encoding
Content-Type
image/png
Cache-Control
public, max-age=14400
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
47f88b32d4f0c2ec-FRA
Content-Length
2782
Expires
Mon, 26 Nov 2018 05:22:23 GMT
QmT1tQRPZvC7svzGyFEiJrhHjBM94H7C9ZjGQD6cwiSCoJ
gateway.ipfs.io/ipfs/
58 KB
59 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmT1tQRPZvC7svzGyFEiJrhHjBM94H7C9ZjGQD6cwiSCoJ
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
2f83d0bb492e6da654692a2398f21c09c03a6408e88c1b335fd165db0ae60e25
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmT1tQRPZvC7svzGyFEiJrhHjBM94H7C9ZjGQD6cwiSCoJ"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqek67cmpplpnmacon4mfg6rp7mdvrxw7mnwcijo2467sotlyuq3ai
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmT1tQRPZvC7svzGyFEiJrhHjBM94H7C9ZjGQD6cwiSCoJ
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmaYX2EsN2oLcKsQnvcHv9WVtyU2htN4osc6YFs7NpcLpW
gateway.ipfs.io/ipfs/
44 KB
45 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmaYX2EsN2oLcKsQnvcHv9WVtyU2htN4osc6YFs7NpcLpW
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
46cc2a8b937e158ef7b58afa74d0192801506f4a2c2bff0321ad4bb6a4670004
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmaYX2EsN2oLcKsQnvcHv9WVtyU2htN4osc6YFs7NpcLpW"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqlkvufjtcwo7ut2qsqimrcwnyb7iqyxlckduvyb6zqj5aojgupm5y
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmaYX2EsN2oLcKsQnvcHv9WVtyU2htN4osc6YFs7NpcLpW
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmUe7XEMcXPAjNQWu8Lx4qhh5dSgiNQBMkdSEK1fGndnqg
gateway.ipfs.io/ipfs/
39 KB
40 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmUe7XEMcXPAjNQWu8Lx4qhh5dSgiNQBMkdSEK1fGndnqg
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
7f405c028e030e8d5ceb7a4f4ea6e09269c8b6d6541c41484ffe1b5d22c9b048
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:25 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmUe7XEMcXPAjNQWu8Lx4qhh5dSgiNQBMkdSEK1fGndnqg"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqf3h2p6jolf7udquabptjiwdntjicyplnf72iag4zs3vjxywbr3ky
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmUe7XEMcXPAjNQWu8Lx4qhh5dSgiNQBMkdSEK1fGndnqg
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmZJ2MfHhG4jSoqYTnk6pjCH6YN1nrs684EVUJ7fQdZSED
gateway.ipfs.io/ipfs/
53 KB
54 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmZJ2MfHhG4jSoqYTnk6pjCH6YN1nrs684EVUJ7fQdZSED
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
c1041ae73b87637f6103d88bc940ae635ebc0e4aa98bc7bdd95b85cba9def4aa
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmZJ2MfHhG4jSoqYTnk6pjCH6YN1nrs684EVUJ7fQdZSED"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqkfrcknbtc4zjpsba3hkotp5i4mjp4xul52k2tqbnotwlatuylxiq
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmZJ2MfHhG4jSoqYTnk6pjCH6YN1nrs684EVUJ7fQdZSED
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmXUYh9QviJmuxUmnQsAVpuAsKWMvdosDeav6GQs136bmN
gateway.ipfs.io/ipfs/
38 KB
39 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmXUYh9QviJmuxUmnQsAVpuAsKWMvdosDeav6GQs136bmN
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
21a1e6c760d9c80b7bd3f731eb01fee582e19d288aaab70b7aad20146652c719
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:25 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmXUYh9QviJmuxUmnQsAVpuAsKWMvdosDeav6GQs136bmN"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqippygt2phmlqfzf6v4nriudtbin5a4lcbjvcx6xmgiw4sth5azpi
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmXUYh9QviJmuxUmnQsAVpuAsKWMvdosDeav6GQs136bmN
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qmb3oTHqomgPBTo9Brpa3dXy25mdkYPVVof5kPmmtFJkv7
gateway.ipfs.io/ipfs/
51 KB
52 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/Qmb3oTHqomgPBTo9Brpa3dXy25mdkYPVVof5kPmmtFJkv7
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
250642837ad6a670281f3f0a053ecee4e1ad4aeee4e3a8830181d9d71804e47f
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"Qmb3oTHqomgPBTo9Brpa3dXy25mdkYPVVof5kPmmtFJkv7"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqlzvxrtshixulqd2hq6bxs5d5bgwkgi22bc5uifmkxrypqlogbq7a
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/Qmb3oTHqomgPBTo9Brpa3dXy25mdkYPVVof5kPmmtFJkv7
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmZSoP9PK8pC87X8pAyJhYSdiW5xJHgMvP9YEVn2H6GSx3
gateway.ipfs.io/ipfs/
48 KB
49 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmZSoP9PK8pC87X8pAyJhYSdiW5xJHgMvP9YEVn2H6GSx3
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
597dfe69f97ab783d8e58e89e74d6d439c613d1e70daa92f8045ed50ebe67a6c
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:25 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmZSoP9PK8pC87X8pAyJhYSdiW5xJHgMvP9YEVn2H6GSx3"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqkka6zatdcacfq7layd6mzykse7s4ohzuhm2i4uu42geosr2smcza
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmZSoP9PK8pC87X8pAyJhYSdiW5xJHgMvP9YEVn2H6GSx3
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmcsyGnwa7DnN9aSjq89gC4iQmvJGCqPoHUWKNUEDLyqe3
gateway.ipfs.io/ipfs/
50 KB
51 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmcsyGnwa7DnN9aSjq89gC4iQmvJGCqPoHUWKNUEDLyqe3
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
f1fe5e81054af1526133af5cd1d23ff8b9e58d6e7baa8d5c6e28f87900882843
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmcsyGnwa7DnN9aSjq89gC4iQmvJGCqPoHUWKNUEDLyqe3"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqnqcm4u52nu5jojucom3yocf4yevrbi7mhjzra3ocrp53dly7vkva
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmcsyGnwa7DnN9aSjq89gC4iQmvJGCqPoHUWKNUEDLyqe3
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
ads.js
ads.exosrv.com/
1 KB
654 B
Script
General
Full URL
https://ads.exosrv.com/ads.js
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2606:2800:234:1f1f:1754:1fef:718:1223 , United States, ASN15133 (EDGECAST - MCI Communications Services, Inc. d/b/a Verizon Business, US),
Reverse DNS
Software
ECS (fcn/40E2) /
Resource Hash
5f337f92c11efbc43b1c170ce4c12c4b550377e542c1e4ee2178c2dc6cb5cf51

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:23 GMT
content-encoding
gzip
last-modified
Sun, 25 Nov 2018 22:35:29 GMT
server
ECS (fcn/40E2)
vary
Accept-Encoding
x-cache
HIT
content-type
text/javascript;charset=UTF-8
status
200
cache-control
max-age=10800
accept-ranges
bytes
content-length
471
expires
Mon, 26 Nov 2018 04:22:23 GMT
QmdNVsXwBiRmh8TvqoZ8fYEMUcQB4dkiPFNu491XCXbtn1
gateway.ipfs.io/ipfs/
54 KB
55 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmdNVsXwBiRmh8TvqoZ8fYEMUcQB4dkiPFNu491XCXbtn1
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
18892974e756f0b15dd1894b7e37bbf0ba844a21c0b6b0b6f504724068022bd7
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmdNVsXwBiRmh8TvqoZ8fYEMUcQB4dkiPFNu491XCXbtn1"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqn6wdzcseeg6isxxb3yntzvhnzofyomcwmvp6ppuu2cok5kn3gb3q
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmdNVsXwBiRmh8TvqoZ8fYEMUcQB4dkiPFNu491XCXbtn1
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmSFEqcnjAmnPxUpbSbAzJMbY7R1qreYNqXmLVvWayjbj7
gateway.ipfs.io/ipfs/
52 KB
53 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmSFEqcnjAmnPxUpbSbAzJMbY7R1qreYNqXmLVvWayjbj7
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
3ee5fcab6982d8e5f6f09e46568b3045d0db8576c35cf079c094ea48e4aa0690
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:23 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmSFEqcnjAmnPxUpbSbAzJMbY7R1qreYNqXmLVvWayjbj7"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqduc62noi3rb7zkkrfycsqton5udoyyepp2vwwb7g4aijja4tchqq
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmSFEqcnjAmnPxUpbSbAzJMbY7R1qreYNqXmLVvWayjbj7
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmVupQFPSGCcEyH9bXbsL7Y4yj2PUTXZAKacRnRS2qicq8
gateway.ipfs.io/ipfs/
50 KB
51 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmVupQFPSGCcEyH9bXbsL7Y4yj2PUTXZAKacRnRS2qicq8
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
4bb1f2bb7e95a48ee696de5105d78fd2f258536cb19f668918e69a598726a42b
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmVupQFPSGCcEyH9bXbsL7Y4yj2PUTXZAKacRnRS2qicq8"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqhbahpeavzvrx5bg6xx2pe5565yqpnuk3twer7czmsi42urmxvsgy
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmVupQFPSGCcEyH9bXbsL7Y4yj2PUTXZAKacRnRS2qicq8
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmQ2T1siZTJRcKgJZBpBYCWX87f19ctVsQXSiMGXLDsBqe
gateway.ipfs.io/ipfs/
38 KB
39 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmQ2T1siZTJRcKgJZBpBYCWX87f19ctVsQXSiMGXLDsBqe
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
7460a51cf3e648c6e7a64e4dcb473e4ff926bef3d6b82995a6ba75d02e2d855e
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:23 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmQ2T1siZTJRcKgJZBpBYCWX87f19ctVsQXSiMGXLDsBqe"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqbsdnsp2cbn7yo6hotqfemz75lvx4mw2qgvgyyjssmiekly6z7zxi
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmQ2T1siZTJRcKgJZBpBYCWX87f19ctVsQXSiMGXLDsBqe
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmfAmWg5YycWAVfoMwDyuk79VuPRYWBVWwHeTu4pt36NFH
gateway.ipfs.io/ipfs/
38 KB
39 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmfAmWg5YycWAVfoMwDyuk79VuPRYWBVWwHeTu4pt36NFH
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
f54b6828d572dd5edf6d660ca918fcea6bbcab3f47275b610716d31fda3e647a
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmfAmWg5YycWAVfoMwDyuk79VuPRYWBVWwHeTu4pt36NFH"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqpudupzsnplq3lz4fy7qsjggnc3giw7v2eunzrybbxil3bkyy5ioa
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmfAmWg5YycWAVfoMwDyuk79VuPRYWBVWwHeTu4pt36NFH
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmVFkrCSFpWNbvKWNYu3itJc2aMrNGskq3ZMj1fx47t9r8
gateway.ipfs.io/ipfs/
52 KB
52 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmVFkrCSFpWNbvKWNYu3itJc2aMrNGskq3ZMj1fx47t9r8
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
19ee839bc4f979a444a74f31cbe0bdee3c3a8c5aab13cc97415e5d4302e433ce
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:23 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmVFkrCSFpWNbvKWNYu3itJc2aMrNGskq3ZMj1fx47t9r8"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqgnqgyvwz2nvui4y3lzyl2esywt6rb5za4isqtyzlvillezg7dioi
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmVFkrCSFpWNbvKWNYu3itJc2aMrNGskq3ZMj1fx47t9r8
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
ads.js
ads.exoclick.com/
1 KB
508 B
Script
General
Full URL
https://ads.exoclick.com/ads.js
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2606:2800:234:1f1f:1754:1fef:718:1223 , United States, ASN15133 (EDGECAST - MCI Communications Services, Inc. d/b/a Verizon Business, US),
Reverse DNS
Software
ECS (fcn/40E2) /
Resource Hash
be06cee347498997d696c3d72c972214543f4108d6283ae93727058c856bb221

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:23 GMT
content-encoding
gzip
last-modified
Sun, 25 Nov 2018 22:35:29 GMT
server
ECS (fcn/40E2)
vary
Accept-Encoding
x-cache
HIT
content-type
text/javascript;charset=UTF-8
status
200
cache-control
max-age=10800
accept-ranges
bytes
content-length
473
expires
Mon, 26 Nov 2018 04:22:23 GMT
QmaNM91CFLWjbnyazrGgdPos72crAgsaDRhSdGArXztnz6
gateway.ipfs.io/ipfs/
51 KB
52 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmaNM91CFLWjbnyazrGgdPos72crAgsaDRhSdGArXztnz6
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
c5e21dc7ea75409d95b40ea677bd6eccd2d9ff3950fce8c55230dcbb3de8b560
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmaNM91CFLWjbnyazrGgdPos72crAgsaDRhSdGArXztnz6"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqlfo4jsxwdz2gxj3raul3kwvwosc7bagfg4d4pbturtjisry5w6sy
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmaNM91CFLWjbnyazrGgdPos72crAgsaDRhSdGArXztnz6
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmTHn8cJUHTi2xu64XU3dDnXnyeCjaWG72f6B8PiN24vR2
gateway.ipfs.io/ipfs/
55 KB
55 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmTHn8cJUHTi2xu64XU3dDnXnyeCjaWG72f6B8PiN24vR2
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
f45a718f2ad73832f02b726bf19c0bcc7eb0d4fb192af7f0d438ea58ac3ba32d
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:23 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmTHn8cJUHTi2xu64XU3dDnXnyeCjaWG72f6B8PiN24vR2"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqetdqvwyjuwitln2u7vhfowgwdunnwhu5h646sssnoay2wytb6lti
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmTHn8cJUHTi2xu64XU3dDnXnyeCjaWG72f6B8PiN24vR2
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmR2LhnLhJ6MbQhbEH21JPjjNF5NpHwFF5VdNDaVs4RGjN
gateway.ipfs.io/ipfs/
56 KB
57 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmR2LhnLhJ6MbQhbEH21JPjjNF5NpHwFF5VdNDaVs4RGjN
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
0ca588365824625bcfbdec44c51dd3ebf384da0204211b08581e1a086640cf8a
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmR2LhnLhJ6MbQhbEH21JPjjNF5NpHwFF5VdNDaVs4RGjN"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqcpyr7jkpsd6qcbhviabiebxfs4sbkhwdwcw5lsu6qoh7iuqswuzi
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmR2LhnLhJ6MbQhbEH21JPjjNF5NpHwFF5VdNDaVs4RGjN
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmXQCSFQEaWF41BTmZvbJ1FWWSoj2RiVFKsiEPa6s1MTe7
gateway.ipfs.io/ipfs/
35 KB
36 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmXQCSFQEaWF41BTmZvbJ1FWWSoj2RiVFKsiEPa6s1MTe7
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
bf454e92a043b1614355a71d8c45fdc30b6d693b00548ec9abfcd0046cc80b3b
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:23 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmXQCSFQEaWF41BTmZvbJ1FWWSoj2RiVFKsiEPa6s1MTe7"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqiniomkljpo53gfq3lvbpd3a27ucehfc45q56m3vc6qwhohfzjqma
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmXQCSFQEaWF41BTmZvbJ1FWWSoj2RiVFKsiEPa6s1MTe7
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmTmoTQwHfBVcFvvcFjhoS4iK1kgF7CZPSZ6cumUWuiiun
gateway.ipfs.io/ipfs/
43 KB
44 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmTmoTQwHfBVcFvvcFjhoS4iK1kgF7CZPSZ6cumUWuiiun
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
891419f946df422b905ea2718b79de7caeeda23db1bec83336118592e9338648
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmTmoTQwHfBVcFvvcFjhoS4iK1kgF7CZPSZ6cumUWuiiun"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqfbo6yige7ihm2a2bksxpnscdzha44yx5rt5uy2ujcp22a32pc4qi
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmTmoTQwHfBVcFvvcFjhoS4iK1kgF7CZPSZ6cumUWuiiun
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmajkDkrX1qBfKCEHuxaKRx1YMawnTiQNir2axNJz9NE5T
gateway.ipfs.io/ipfs/
45 KB
45 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmajkDkrX1qBfKCEHuxaKRx1YMawnTiQNir2axNJz9NE5T
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
a36d46ceb2f6c8a636227f7ef04c842cdd72db093d51617c6942b60bec446920
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:23 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmajkDkrX1qBfKCEHuxaKRx1YMawnTiQNir2axNJz9NE5T"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqlqnwvkfgwfrurj35slriq6csg4s3e3qzdnaquqxxiypg2tzhj37q
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmajkDkrX1qBfKCEHuxaKRx1YMawnTiQNir2axNJz9NE5T
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmbRxJYnF6zj55Q5S8ijzJMP4skTbBapcyiMGyNssZBxk1
gateway.ipfs.io/ipfs/
48 KB
49 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmbRxJYnF6zj55Q5S8ijzJMP4skTbBapcyiMGyNssZBxk1
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
a9ceb73f02fd30b79868e03e646e359f4cffd4cd5922dabd7ce79a0a4fef1253
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmbRxJYnF6zj55Q5S8ijzJMP4skTbBapcyiMGyNssZBxk1"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqmfa52huizzdyj4624znyomtjxcb5sn4rqaynyzjfnxyj2v5nwqsq
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmbRxJYnF6zj55Q5S8ijzJMP4skTbBapcyiMGyNssZBxk1
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qmf9qUCkyaphARqmYeX8YA3pe8x1vjmZE1UYS6uuANXFf7
gateway.ipfs.io/ipfs/
53 KB
53 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/Qmf9qUCkyaphARqmYeX8YA3pe8x1vjmZE1UYS6uuANXFf7
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
30523bc258e465e002caa8bb065b65a9fb808b62cd1a4c2d4b469a36d94152ed
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:23 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"Qmf9qUCkyaphARqmYeX8YA3pe8x1vjmZE1UYS6uuANXFf7"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqptulut3jv43vdburgs34pmm6i6vdl5jbmlgty5wcnj4qh5245aoq
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/Qmf9qUCkyaphARqmYeX8YA3pe8x1vjmZE1UYS6uuANXFf7
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmbdYn8AdJMjPprYyCzyetPTzKDu4SQveSer7WPD1ZmDtU
gateway.ipfs.io/ipfs/
36 KB
37 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmbdYn8AdJMjPprYyCzyetPTzKDu4SQveSer7WPD1ZmDtU
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
4939eae39bb1a36e8e7eb18ba7260138ef13d65965cb723e50516d1c89f43d06
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmbdYn8AdJMjPprYyCzyetPTzKDu4SQveSer7WPD1ZmDtU"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqmk7azb774g6nek52doig2h5i4ijceyru5eak5wmc6wjkvfgshcoi
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmbdYn8AdJMjPprYyCzyetPTzKDu4SQveSer7WPD1ZmDtU
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmVojAxoA7ZaoXsKepmDkhBejYThrySMcxvaFd1GqQXrQH
gateway.ipfs.io/ipfs/
43 KB
43 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmVojAxoA7ZaoXsKepmDkhBejYThrySMcxvaFd1GqQXrQH
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
679393d7154495e7f8d610ac79013b48a4957af64343d1b77f33bd555aa7c60d
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:23 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmVojAxoA7ZaoXsKepmDkhBejYThrySMcxvaFd1GqQXrQH"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqg54mjmvha6ybivq27bvpqqwerzd6yxwuc6zjhdruzjlmxz4it4cq
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmVojAxoA7ZaoXsKepmDkhBejYThrySMcxvaFd1GqQXrQH
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmRmxBpJW29vdnJNnzMk2ZfRgDEsM9NzZN8Gy7hf8JbD39
gateway.ipfs.io/ipfs/
48 KB
48 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmRmxBpJW29vdnJNnzMk2ZfRgDEsM9NzZN8Gy7hf8JbD39
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
880adcc066f9bc84b9476e274d3ed2c37703165c0c0aa6c976723b028e8c5b07
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmRmxBpJW29vdnJNnzMk2ZfRgDEsM9NzZN8Gy7hf8JbD39"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqdgdsx3gwobnptiod4jx2q43cbzzgnwx4lnhkw35l5at65yw6fq3a
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmRmxBpJW29vdnJNnzMk2ZfRgDEsM9NzZN8Gy7hf8JbD39
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmWKMHywxeEXW3LX2jiyz8LhF5bkB4PCsXwb6eB4CJEbmt
gateway.ipfs.io/ipfs/
42 KB
43 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmWKMHywxeEXW3LX2jiyz8LhF5bkB4PCsXwb6eB4CJEbmt
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
4c973587224baf0274349912ee94c36a550f35cbbd7334f5c26ee0d2e581b657
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:23 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmWKMHywxeEXW3LX2jiyz8LhF5bkB4PCsXwb6eB4CJEbmt"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqhncby5oykl6urq2siwiklt73oeuvoaglw5vgfcwnyrcnjinpchky
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmWKMHywxeEXW3LX2jiyz8LhF5bkB4PCsXwb6eB4CJEbmt
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmX1PUQPUpWz39NZqoNRD9FMnjSdGHvpNc4PM3uaZt6ChA
gateway.ipfs.io/ipfs/
40 KB
41 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmX1PUQPUpWz39NZqoNRD9FMnjSdGHvpNc4PM3uaZt6ChA
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
157c4fa721442be1d5dd48560d8e8e27e2e03a2021e7549be520499485e783c1
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmX1PUQPUpWz39NZqoNRD9FMnjSdGHvpNc4PM3uaZt6ChA"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqibsplkxzhdxoomdnd7lqpa7mrc2igclniwnroxyvlheirkhqcjxi
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmX1PUQPUpWz39NZqoNRD9FMnjSdGHvpNc4PM3uaZt6ChA
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmTmXQgTCWA1ojqeuZTzrEtwbtWRXZK9mvWi66FjBGePPE
gateway.ipfs.io/ipfs/
40 KB
41 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmTmXQgTCWA1ojqeuZTzrEtwbtWRXZK9mvWi66FjBGePPE
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
e3109e55f0e8793c915798123861a0e9432e8d05a0032f467e7ccfe6aebf6c1f
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmTmXQgTCWA1ojqeuZTzrEtwbtWRXZK9mvWi66FjBGePPE"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqfbkntihgyav2a2sit7msdzc3ztguqx4f4lsbfkmysgwnl7odengi
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmTmXQgTCWA1ojqeuZTzrEtwbtWRXZK9mvWi66FjBGePPE
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmXc1UHCt3artBkKSSaGWtMYPeJkc1japkyPuywooo9d4r
gateway.ipfs.io/ipfs/
54 KB
55 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmXc1UHCt3artBkKSSaGWtMYPeJkc1japkyPuywooo9d4r
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
b7f573e089fa20f9f1cc523f502416bb2df0582a5e7665138e47841820604f46
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmXc1UHCt3artBkKSSaGWtMYPeJkc1japkyPuywooo9d4r"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqitkc6utyeiqzluwf6zof2xesb65jairelacztf7wj4kn4otowkty
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmXc1UHCt3artBkKSSaGWtMYPeJkc1japkyPuywooo9d4r
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmcWpVoDkvJiAuK2V1qvgYhRpdW3g1kr1XK1iDCfLDg5ug
gateway.ipfs.io/ipfs/
41 KB
41 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmcWpVoDkvJiAuK2V1qvgYhRpdW3g1kr1XK1iDCfLDg5ug
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
9d223c78f79534477ee1da849c39fa8d49b7df9e27ef3587ec3a085ea3c1117f
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmcWpVoDkvJiAuK2V1qvgYhRpdW3g1kr1XK1iDCfLDg5ug"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqnfht57sdv5molpmzhuald4nxlaa6lvlocakz7y2itbzu7cb67wny
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmcWpVoDkvJiAuK2V1qvgYhRpdW3g1kr1XK1iDCfLDg5ug
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qmahyq3RtyV3QUzv4VAsSXi1hKuzkAnwD2Xfz4BJgTJoNp
gateway.ipfs.io/ipfs/
40 KB
41 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/Qmahyq3RtyV3QUzv4VAsSXi1hKuzkAnwD2Xfz4BJgTJoNp
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
4a857691cb98be81b1734bd18180d15ae0b6868ec4acf13cc9d07ec101d4660f
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"Qmahyq3RtyV3QUzv4VAsSXi1hKuzkAnwD2Xfz4BJgTJoNp"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqlpqypa2avkkpkmum7omlebpm6cqdzs6hafu3on2rbowx7injjkui
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/Qmahyq3RtyV3QUzv4VAsSXi1hKuzkAnwD2Xfz4BJgTJoNp
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmfCAaMbowdqeg5jECq9X15Z9XcqmJKK9Wtu718AKTXC8x
gateway.ipfs.io/ipfs/
42 KB
42 KB
Image
General
Full URL
https://gateway.ipfs.io/ipfs/QmfCAaMbowdqeg5jECq9X15Z9XcqmJKK9Wtu718AKTXC8x
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2602:fea2:1:78:: -, , ASN40680 (PROTOCOL - Protocol Labs, US),
Reverse DNS
Software
/
Resource Hash
ed530d322b3a383addfe4029cc9bcfbfa88410adc9aa7862f72efc226422bc3a
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Mon, 26 Nov 2018 01:22:24 GMT
content-encoding
gzip
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
status
200
etag
W/"QmfCAaMbowdqeg5jECq9X15Z9XcqmJKK9Wtu718AKTXC8x"
vary
Accept-Encoding
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
suborigin
ipfs000bciqpu2ryoeshcgu545z2e3hibdckxdh3xz2igar4k3jrpqsoxzvldki
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmfCAaMbowdqeg5jECq9X15Z9XcqmJKK9Wtu718AKTXC8x
strict-transport-security
max-age=31536000; includeSubDomains; preload
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
jquery-2.2.4.min.js
code.jquery.com/
84 KB
30 KB
Script
General
Full URL
https://code.jquery.com/jquery-2.2.4.min.js
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
205.185.208.52 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip052.ssl.hwcdn.net
Software
nginx /
Resource Hash
05b85d96f41fff14d8f608dad03ab71e2c1017c2da0914d7c59291bad7a54f8e

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/
Origin
http://www.givemejav.com

Response headers

Date
Mon, 26 Nov 2018 01:22:23 GMT
Content-Encoding
gzip
Last-Modified
Fri, 20 May 2016 17:24:41 GMT
Server
nginx
ETag
W/"573f4859-14e4a"
Vary
Accept-Encoding
X-HW
1543195343.dop015.fr8.shc,1543195343.dop015.fr8.t,1543195343.cds130.fr8.c
Content-Type
application/javascript; charset=utf-8
Access-Control-Allow-Origin
*
Cache-Control
max-age=315360000, public
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
29811
bootstrap.min.js
maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/
36 KB
10 KB
Script
General
Full URL
https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
209.197.3.15 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip0x00f.map2.ssl.hwcdn.net
Software
/
Resource Hash
2979f9a6e32fc42c3e7406339ee9fe76b31d1b52059776a02b4a7fa6a4fd280a

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/
Origin
http://www.givemejav.com

Response headers

date
Mon, 26 Nov 2018 01:22:23 GMT
content-encoding
gzip
last-modified
Tue, 20 Feb 2018 05:58:02 GMT
status
200
etag
"1519106282"
vary
Accept-Encoding
x-cache
HIT
content-type
application/javascript; charset=utf-8
access-control-allow-origin
*
cache-control
max-age=31536000
x-hello-human
Say hello back! @getBootstrapCDN on Twitter
accept-ranges
bytes
content-length
9764
csrf.js
www.givemejav.com/static/giveme/js/
852 B
854 B
Script
General
Full URL
http://www.givemejav.com/static/giveme/js/csrf.js
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2bf9 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
6659984fd64ddf715a345cfea92e11ff7ff1311709b2b046306dc7093a289b9a

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
www.givemejav.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
*/*
Referer
http://www.givemejav.com/
Cookie
__cfduid=d65048c89d949b02d8deeaf23a32a28601543195342
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Mon, 26 Nov 2018 01:22:23 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Fri, 23 Mar 2018 06:32:07 GMT
Server
cloudflare
ETag
W/"5ab49f67-354"
Vary
Accept-Encoding
Content-Type
application/javascript
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
47f88b33e2fb9786-FRA
Expires
Mon, 26 Nov 2018 05:22:23 GMT
crypta.js
statdynamic.com/lib/
697 KB
98 KB
Script
General
Full URL
http://statdynamic.com/lib/crypta.js
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Server
2606:4700:30::681b:a51e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
66fb37f0a348652be4f1afc6bd5bbfa1de656d8ed495d3ddd9c19fa84d448cb1

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Tue, 20 Nov 2018 00:08:45 GMT
Server
cloudflare
ETag
W/"1961468389"
Vary
Accept-Encoding
Content-Type
text/javascript
Access-Control-Allow-Origin
*
Cache-Control
public, max-age=14400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
47f88b34032097e0-FRA
Expires
Mon, 26 Nov 2018 05:22:24 GMT
js
ca.clcknads.pro/v1/a/23402/
17 KB
6 KB
Script
General
Full URL
http://ca.clcknads.pro/v1/a/23402/js
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Server
88.208.9.35 Amsterdam, Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
268a7f92197bce09886823c1ae070d6e519783da803df9f6f02ccb174ea3a6d7

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/javascript; charset=UTF-8
Access-Control-Allow-Origin
*
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
23401
ca.clcknads.pro/v1/apop/js/zone/
89 KB
36 KB
Script
General
Full URL
http://ca.clcknads.pro/v1/apop/js/zone/23401
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Server
88.208.9.35 Amsterdam, Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
522b879f920e3c11c24e44ac7a5cfe5e57a3a7b9cf6ad8b57ae995638466ea5f

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/javascript; charset=UTF-8
Access-Control-Allow-Origin
*
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
znWaa3gu
dcba.popcash.net/
0
117 B
XHR
General
Full URL
https://dcba.popcash.net/znWaa3gu
Requested by
Host: cdn.popcash.net
URL: http://cdn.popcash.net/pop.js
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
52.4.72.68 Ashburn, United States, ASN14618 (AMAZON-AES - Amazon.com, Inc., US),
Reverse DNS
ec2-52-4-72-68.compute-1.amazonaws.com
Software
/
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/
Origin
http://www.givemejav.com

Response headers

status
204
pragma
no-cache
date
Mon, 26 Nov 2018 01:22:24 GMT
cache-control
no-cache, no-store, must-revalidate
access-control-allow-origin
*
expires
0
analytics.js
www.google-analytics.com/
43 KB
17 KB
Script
General
Full URL
https://www.google-analytics.com/analytics.js
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4001:819::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
b688a3bcd1297cc0fe08e6e52fea14ba9108ee4b9a2052c03e7bac6e19347255
Security Headers
Name Value
Strict-Transport-Security max-age=10886400; includeSubDomains; preload
X-Content-Type-Options nosniff

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

strict-transport-security
max-age=10886400; includeSubDomains; preload
content-encoding
gzip
x-content-type-options
nosniff
last-modified
Mon, 05 Nov 2018 21:10:09 GMT
server
Golfe2
age
5263
date
Sun, 25 Nov 2018 23:54:40 GMT
vary
Accept-Encoding
content-type
text/javascript
status
200
cache-control
public, max-age=7200
timing-allow-origin
*
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
17404
expires
Mon, 26 Nov 2018 01:54:40 GMT
Cookie set 24955
ca.clcknads.pro/v2/a/ban/iframe/ Frame DAFD
0
0
Document
General
Full URL
http://ca.clcknads.pro/v2/a/ban/iframe/24955
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Server
88.208.9.35 Amsterdam, Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
ca.clcknads.pro
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.givemejav.com/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/

Response headers

Server
nginx
Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Type
text/html; charset=UTF-8
Transfer-Encoding
chunked
Connection
keep-alive
Vary
Accept-Encoding
Access-Control-Allow-Origin
*
Access-Control-Allow-Credentials
true
Access-Control-Max-Age
86400
Referrer-Policy
unsafe-url
Set-Cookie
uuid=17b2111125346b3623a7ffcd4a01b71f7121b8d5ba720dd60e8bbcb54cbb7539; expires=Tue, 26 Nov 2019 01:22:24 GMT; domain=clcknads.pro; path=/; HttpOnly
Content-Encoding
gzip
TK3iWkUHHAIjg752GT8Gl-1PKw.woff2
fonts.gstatic.com/s/oswald/v16/
9 KB
9 KB
Font
General
Full URL
https://fonts.gstatic.com/s/oswald/v16/TK3iWkUHHAIjg752GT8Gl-1PKw.woff2
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4001:818::2003 , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
sffe /
Resource Hash
a26fd52082f9c6c191e6f75ca86d82544f74ec979da9c64406a89bea6247a9e9
Security Headers
Name Value
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
https://fonts.googleapis.com/css?family=Oswald:400,300,700
Origin
http://www.givemejav.com

Response headers

date
Sat, 10 Nov 2018 11:21:10 GMT
x-content-type-options
nosniff
last-modified
Tue, 07 Nov 2017 15:18:49 GMT
server
sffe
age
1346473
status
200
content-type
font/woff2
access-control-allow-origin
*
cache-control
public, max-age=31536000
accept-ranges
bytes
timing-allow-origin
*
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
9324
x-xss-protection
1; mode=block
expires
Sun, 10 Nov 2019 11:21:10 GMT
ionicons.ttf
code.ionicframework.com/ionicons/2.0.1/fonts/
184 KB
107 KB
Font
General
Full URL
http://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Server
2606:4700:20::6819:7b63 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
5e700835ec05293a3d0f9e354e7d038319d34521cd279e782198dff6d1dd58f2

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css
Origin
http://www.givemejav.com

Response headers

X-Fastly-Request-ID
02ff03bded07b2f5d86e5ee279618545e38d8702
Date
Mon, 26 Nov 2018 01:22:24 GMT
Via
1.1 varnish
CF-Cache-Status
MISS
Transfer-Encoding
chunked
X-Cache
HIT
X-Cache-Hits
5
Connection
keep-alive
Content-Encoding
gzip
X-Served-By
cache-hhn1530-HHN
Last-Modified
Thu, 23 Aug 2018 20:38:22 GMT
Server
cloudflare
X-GitHub-Request-Id
95D8:4AB0:363B9DA:469A809:5BECD8CF
X-Timer
S1543195344.014817,VS0,VE0
ETag
W/"5b7f1b3e-2e05c"
Vary
Accept-Encoding
Content-Type
font/ttf
Access-Control-Allow-Origin
*
Cache-Control
public, max-age=7200
CF-RAY
47f88b34004797d4-FRA
Expires
Mon, 26 Nov 2018 03:22:24 GMT
Cookie set ads-iframe-display.php
syndication.exosrv.com/ Frame 21D0
0
0
Document
General
Full URL
http://syndication.exosrv.com/ads-iframe-display.php?idzone=2961062&type=300x250&p=http%3A//www.givemejav.com/&dt=1543195344059&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exosrv.com
URL: https://ads.exosrv.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.245 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exosrv.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.givemejav.com/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/

Response headers

Server
nginx
Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bfb4ad017d672.303108383640268371%22%3B%7D; expires=Wed, 25-Nov-2020 01:22:24 GMT; Max-Age=63072000; domain=exosrv.com impressions=x%9C5%C71%12%00%10%0C%04%C0%BFx%81%24%97%C1%E55J%B5%D2%F8%3B%0A%C5%16%DB%29%5C%83%EA%A5%95%AA%D1i%AF9%06%E5s%9847%E0Fc%12L%02%E4%14%7B%1F%FB%AC%0F%D9; expires=Tue, 27-Nov-2018 01:22:24 GMT; Max-Age=86400; path=/; domain=.exosrv.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exosrv.com/ Frame 5A05
0
0
Document
General
Full URL
http://syndication.exosrv.com/ads-iframe-display.php?idzone=2961064&type=300x250&p=http%3A//www.givemejav.com/&dt=1543195344061&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exosrv.com
URL: https://ads.exosrv.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.245 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exosrv.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.givemejav.com/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/

Response headers

Server
nginx
Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bfb4ad017a649.148014153635382788%22%3B%7D; expires=Wed, 25-Nov-2020 01:22:24 GMT; Max-Age=63072000; domain=exosrv.com impressions=x%9C5%C71%12%00%10%0C%04%C0%BFx%81%24%97%C1%E55J%B5%D2%F8%3B%0A%C5%16%DB%29%5C%83%EA%A5%95%AA%D1i%AF9%06%E5s%9847%E0Fc%12L%02%E4%14%7B%1F%FB%AC%0F%D9; expires=Tue, 27-Nov-2018 01:22:24 GMT; Max-Age=86400; path=/; domain=.exosrv.com
Content-Encoding
gzip
Cookie set 24956
ca.clcknads.pro/v2/a/ban/iframe/ Frame AA6F
0
0
Document
General
Full URL
http://ca.clcknads.pro/v2/a/ban/iframe/24956
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Server
88.208.9.35 Amsterdam, Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
ca.clcknads.pro
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.givemejav.com/
Accept-Encoding
gzip, deflate
Cookie
uuid=17b2111125346b3623a7ffcd4a01b71f7121b8d5ba720dd60e8bbcb54cbb7539
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/

Response headers

Server
nginx
Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Type
text/html; charset=UTF-8
Transfer-Encoding
chunked
Connection
keep-alive
Vary
Accept-Encoding
Access-Control-Allow-Origin
*
Access-Control-Allow-Credentials
true
Access-Control-Max-Age
86400
Referrer-Policy
unsafe-url
Set-Cookie
uuid=17b2111125346b3623a7ffcd4a01b71f7121b8d5ba720dd60e8bbcb54cbb7539; expires=Tue, 26 Nov 2019 01:22:24 GMT; domain=clcknads.pro; path=/; HttpOnly
Content-Encoding
gzip
TK3hWkUHHAIjg75-ohoTus9CAZek1w.woff2
fonts.gstatic.com/s/oswald/v16/
9 KB
10 KB
Font
General
Full URL
https://fonts.gstatic.com/s/oswald/v16/TK3hWkUHHAIjg75-ohoTus9CAZek1w.woff2
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4001:818::2003 , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
sffe /
Resource Hash
19e1c4c97917724cacf9f2e3c544ed0925a14ef28a79565b7bae38fc70ac82f2
Security Headers
Name Value
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
https://fonts.googleapis.com/css?family=Oswald:400,300,700
Origin
http://www.givemejav.com

Response headers

date
Wed, 14 Nov 2018 21:23:16 GMT
x-content-type-options
nosniff
last-modified
Tue, 07 Nov 2017 15:19:11 GMT
server
sffe
age
964748
status
200
content-type
font/woff2
access-control-allow-origin
*
cache-control
public, max-age=31536000
accept-ranges
bytes
timing-allow-origin
*
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
9644
x-xss-protection
1; mode=block
expires
Thu, 14 Nov 2019 21:23:16 GMT
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame BBA6
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2159731&type=728x90&p=http%3A//www.givemejav.com/&dt=1543195344116&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.givemejav.com/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/

Response headers

Server
nginx
Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bfb4ad023dca6.992103924252334423%22%3B%7D; expires=Wed, 25-Nov-2020 01:22:24 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9C5%C7%B1%11%00%10%10%04%C0%5ET%E0%FC1%DCW%23%14%0B%8D%DE%11%086%D8.h%0D%A5R%0D%15%DEe%AF%D1%87%F0e%1AZ6%F2%26%F9%14%15%40%C6%E0%7B%1F%F9%7C%0F%CE; expires=Tue, 27-Nov-2018 01:22:24 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set 24957
ca.clcknads.pro/v2/a/ban/iframe/ Frame 55BD
0
0
Document
General
Full URL
http://ca.clcknads.pro/v2/a/ban/iframe/24957
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Server
88.208.9.35 Amsterdam, Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
ca.clcknads.pro
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.givemejav.com/
Accept-Encoding
gzip, deflate
Cookie
uuid=17b2111125346b3623a7ffcd4a01b71f7121b8d5ba720dd60e8bbcb54cbb7539
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/

Response headers

Server
nginx
Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Type
text/html; charset=UTF-8
Transfer-Encoding
chunked
Connection
keep-alive
Vary
Accept-Encoding
Access-Control-Allow-Origin
*
Access-Control-Allow-Credentials
true
Access-Control-Max-Age
86400
Referrer-Policy
unsafe-url
Set-Cookie
uuid=17b2111125346b3623a7ffcd4a01b71f7121b8d5ba720dd60e8bbcb54cbb7539; expires=Tue, 26 Nov 2019 01:22:24 GMT; domain=clcknads.pro; path=/; HttpOnly
Content-Encoding
gzip
collect
www.google-analytics.com/r/
35 B
107 B
Image
General
Full URL
https://www.google-analytics.com/r/collect?v=1&_v=j72&a=161224021&t=pageview&_s=1&dl=http%3A%2F%2Fwww.givemejav.com%2F&ul=en-us&de=UTF-8&dt=%E5%85%8D%E8%B2%BB%E6%9C%80%E6%96%B0%E6%9C%80%E6%AD%A3JAV%E7%B7%9A%E4%B8%8A%E8%A7%80%E7%9C%8B%20%7C%20%E7%B5%A6%E6%88%91JAV&sd=24-bit&sr=1600x1200&vp=1585x1200&je=0&_u=IEBAAEAB~&jid=458612852&gjid=1130030245&cid=1634312986.1543195344&tid=UA-81914928-1&_gid=769905738.1543195344&_r=1&z=135939014
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4001:819::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

pragma
no-cache
date
Mon, 26 Nov 2018 01:22:24 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
status
200
content-type
image/gif
access-control-allow-origin
*
cache-control
no-cache, no-store, must-revalidate
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
35
expires
Fri, 01 Jan 1990 00:00:00 GMT
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame CB4D
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2159733&type=728x90&p=http%3A//www.givemejav.com/&dt=1543195344218&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.givemejav.com/
Accept-Encoding
gzip, deflate
Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bfb4ad023dca6.992103924252334423%22%3B%7D; impressions=x%9C5%C7%B1%11%00%10%10%04%C0%5ET%E0%FC1%DCW%23%14%0B%8D%DE%11%086%D8.h%0D%A5R%0D%15%DEe%AF%D1%87%F0e%1AZ6%F2%26%F9%14%15%40%C6%E0%7B%1F%F9%7C%0F%CE
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/

Response headers

Server
nginx
Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bfb4ad023dca6.992103924252334423%22%3B%7D; expires=Wed, 25-Nov-2020 01:22:24 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B2%AA%CE%B422%B306%B40%B4N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D8%D0%D2%D4%D8%C4%04%C81%B2.%B62%B1R2411P%B2%AE%05%F2%0D%CC%2C%0D%0D%0CH%D4W%0B%00%F0f%1D%93; expires=Tue, 27-Nov-2018 01:22:24 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set 24958
ca.clcknads.pro/v2/a/ban/iframe/ Frame D407
0
0
Document
General
Full URL
http://ca.clcknads.pro/v2/a/ban/iframe/24958
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Server
88.208.9.35 Amsterdam, Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
ca.clcknads.pro
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.givemejav.com/
Accept-Encoding
gzip, deflate
Cookie
uuid=17b2111125346b3623a7ffcd4a01b71f7121b8d5ba720dd60e8bbcb54cbb7539
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/

Response headers

Server
nginx
Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Type
text/html; charset=UTF-8
Transfer-Encoding
chunked
Connection
keep-alive
Vary
Accept-Encoding
Access-Control-Allow-Origin
*
Access-Control-Allow-Credentials
true
Access-Control-Max-Age
86400
Referrer-Policy
unsafe-url
Set-Cookie
uuid=17b2111125346b3623a7ffcd4a01b71f7121b8d5ba720dd60e8bbcb54cbb7539; expires=Tue, 26 Nov 2019 01:22:24 GMT; domain=clcknads.pro; path=/; HttpOnly
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 42D8
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2159737&type=728x90&p=http%3A//www.givemejav.com/&dt=1543195344276&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.givemejav.com/
Accept-Encoding
gzip, deflate
Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bfb4ad023dca6.992103924252334423%22%3B%7D; impressions=x%9C5%C7%B1%11%00%10%10%04%C0%5ET%E0%FC1%DCW%23%14%0B%8D%DE%11%086%D8.h%0D%A5R%0D%15%DEe%AF%D1%87%F0e%1AZ6%F2%26%F9%14%15%40%C6%E0%7B%1F%F9%7C%0F%CE
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/

Response headers

Server
nginx
Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bfb4ad023dca6.992103924252334423%22%3B%7D; expires=Wed, 25-Nov-2020 01:22:24 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B2%AA%CE%B422%B306%B40%B4N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D8%D0%D2%D4%D8%C4%04%C81%B2.%B62%B1R2411P%B2%AE%05%E933%B507%25Q_-%00%F4%92%1D%A8; expires=Tue, 27-Nov-2018 01:22:24 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame A514
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2158661&type=300x250&p=http%3A//www.givemejav.com/&dt=1543195344320&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.givemejav.com/
Accept-Encoding
gzip, deflate
Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bfb4ad023dca6.992103924252334423%22%3B%7D; impressions=x%9CK%B42%B2%AA%CE%B422%B306%B40%B4N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D8%D0%D2%D4%D8%C4%04%C81%B2.%B62%B1R2411P%B2%AE%05%F2%0D%CC%2C%0D%0D%0CH%D4W%0B%00%F0f%1D%93
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/

Response headers

Server
nginx
Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bfb4ad023dca6.992103924252334423%22%3B%7D; expires=Wed, 25-Nov-2020 01:22:24 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9C%95%CB%B9%0D%C0+%10%05%D1%5E%A8%60O%60%FFVCHLh%D1%BB%91%2C%17%400%C1%0Bf%40%F1LH%ED%CA%9Ds%7C%A4%9C%E0%3F7%E5p5%3B%90%5C0%146%A3%92%FB%98j0%D1%FD%E7-Z%97%CBo%BF%EF4%2Bn; expires=Tue, 27-Nov-2018 01:22:24 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 0E76
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2158663&type=300x250&p=http%3A//www.givemejav.com/&dt=1543195344326&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.245 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.givemejav.com/
Accept-Encoding
gzip, deflate
Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bfb4ad023dca6.992103924252334423%22%3B%7D; impressions=x%9CK%B42%B2%AA%CE%B422%B306%B40%B4N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D8%D0%D2%D4%D8%C4%04%C81%B2.%B62%B1R2411P%B2%AE%05%F2%0D%CC%2C%0D%0D%0CH%D4W%0B%00%F0f%1D%93
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/

Response headers

Server
nginx
Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bfb4ad023dca6.992103924252334423%22%3B%7D; expires=Wed, 25-Nov-2020 01:22:24 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9C%95%CB%B9%0D%C0+%10%05%D1%5E%A8%60O%60%FFVCHLh%D1%BB%91%2C%17%400%C1%0Bf%40%F1LH%ED%CA%9Ds%7C%A4%9C%E0%3F7%E5p5%3B%90%5C0%146%A3%92%FB%98j0%D1%FD%E7-Z%97%CBo%BF%EF4%2Bn; expires=Tue, 27-Nov-2018 01:22:24 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 18ED
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2158665&type=300x250&p=http%3A//www.givemejav.com/&dt=1543195344329&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.245 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.givemejav.com/
Accept-Encoding
gzip, deflate
Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bfb4ad023dca6.992103924252334423%22%3B%7D; impressions=x%9CK%B42%B2%AA%CE%B422%B306%B40%B4N%B42%06q%0D%AC3%AD%0Ca%D8%D4%C4%D8%D0%D2%D4%D8%C4%04%C81%B2.%B62%B1R2411P%B2%AE%05%F2%0D%CC%2C%0D%0D%0CH%D4W%0B%00%F0f%1D%93
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/

Response headers

Server
nginx
Date
Mon, 26 Nov 2018 01:22:24 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bfb4ad023dca6.992103924252334423%22%3B%7D; expires=Wed, 25-Nov-2020 01:22:24 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9C%95%CB%B9%0D%C0+%10%05%D1%5E%A8%60O%60%FFVCHLh%D1%BB%91%2C%17%400%C1%0Bf%40%F1LH%ED%CA%9Ds%7C%A4%9C%E0%3F7%E5p5%3B%90%5C0%146%A3%92%FB%98j0%D1%FD%E7-Z%97%CBo%BF%EF4%2Bn; expires=Tue, 27-Nov-2018 01:22:24 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
pop.js
c1.popads.net/
68 KB
28 KB
Script
General
Full URL
http://c1.popads.net/pop.js
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
HTTP/1.1
Server
185.59.220.22 Frankfurt, Germany, ASN60068 (CDN77, GB),
Reverse DNS
frankfurt-20.cdn77.com
Software
CDN77-Turbo /
Resource Hash
fefc31fe8b6a75aa50147bc062e2ed750e20c8d78fb24a02342c17f15f2f261a

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Mon, 26 Nov 2018 01:22:25 GMT
Content-Encoding
gzip
Last-Modified
Sun, 15 Apr 2018 14:16:47 GMT
Server
CDN77-Turbo
X-Edge-Location
frankfurtDE
ETag
W/"5ad35ecf-1108b"
Transfer-Encoding
chunked
X-Cache
HIT
Content-Type
application/javascript
Access-Control-Allow-Origin
*
Cache-Control
max-age=604800
X-Edge-IP
185.59.220.20
Connection
keep-alive
X-Age
477126
Expires
Tue, 14 Aug 2018 12:50:04 GMT
40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
http://www.givemejav.com/
163 KB
0
Other
General
Full URL
blob:http://www.givemejav.com/40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
857a774c3a18ab2f252b5b4f92ab90e1d7e9b9b1b534875f007e0f6a6cb77a61

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167127
40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
http://www.givemejav.com/
163 KB
0
Other
General
Full URL
blob:http://www.givemejav.com/40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
857a774c3a18ab2f252b5b4f92ab90e1d7e9b9b1b534875f007e0f6a6cb77a61

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167127
40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
http://www.givemejav.com/
163 KB
0
Other
General
Full URL
blob:http://www.givemejav.com/40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
857a774c3a18ab2f252b5b4f92ab90e1d7e9b9b1b534875f007e0f6a6cb77a61

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167127
40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
http://www.givemejav.com/
163 KB
0
Other
General
Full URL
blob:http://www.givemejav.com/40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
857a774c3a18ab2f252b5b4f92ab90e1d7e9b9b1b534875f007e0f6a6cb77a61

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167127
40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
http://www.givemejav.com/
163 KB
0
Other
General
Full URL
blob:http://www.givemejav.com/40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
857a774c3a18ab2f252b5b4f92ab90e1d7e9b9b1b534875f007e0f6a6cb77a61

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167127
40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
http://www.givemejav.com/
163 KB
0
Other
General
Full URL
blob:http://www.givemejav.com/40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
857a774c3a18ab2f252b5b4f92ab90e1d7e9b9b1b534875f007e0f6a6cb77a61

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167127
40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
http://www.givemejav.com/
163 KB
0
Other
General
Full URL
blob:http://www.givemejav.com/40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
857a774c3a18ab2f252b5b4f92ab90e1d7e9b9b1b534875f007e0f6a6cb77a61

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167127
40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
http://www.givemejav.com/
163 KB
0
Other
General
Full URL
blob:http://www.givemejav.com/40eab634-e0d2-4f29-82e8-de8ab3ce7ab9
Requested by
Host: statdynamic.com
URL: http://statdynamic.com/lib/crypta.js
Protocol
BLOB
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
857a774c3a18ab2f252b5b4f92ab90e1d7e9b9b1b534875f007e0f6a6cb77a61

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Length
167127
truncated
/
66 KB
0
Script
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
7ea8308ec7dbe24f0d8ca6b4e2a1576d20742c7ba17b3397dc0c411549175275

Request headers

Response headers

Access-Control-Allow-Origin
*
Content-Type
text/plain
glyphicons-halflings-regular.woff2
maxcdn.bootstrapcdn.com/bootstrap/3.3.6/fonts/
18 KB
18 KB
Font
General
Full URL
https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/fonts/glyphicons-halflings-regular.woff2
Requested by
Host: www.givemejav.com
URL: http://www.givemejav.com/
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
209.197.3.15 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip0x00f.map2.ssl.hwcdn.net
Software
/
Resource Hash
fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
Origin
http://www.givemejav.com

Response headers

date
Mon, 26 Nov 2018 01:22:25 GMT
content-encoding
gzip
last-modified
Tue, 20 Feb 2018 05:58:13 GMT
status
200
etag
"1519106293"
vary
Accept-Encoding
x-cache
HIT
content-type
application/font-woff2
access-control-allow-origin
*
cache-control
max-age=31536000
x-hello-human
Say hello back! @getBootstrapCDN on Twitter
accept-ranges
bytes
content-length
18056
truncated
/
4 KB
0
Media
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
a27edba0e34b2648a90a800ae94fdef3e39016d1b9bd6e54a31ede1f1cddfed0

Request headers

Response headers

Access-Control-Allow-Origin
*
Content-Type
video/mp4
23402
ca.clcknads.pro/v2/a/vsl/vst/
4 KB
2 KB
XHR
General
Full URL
http://ca.clcknads.pro/v2/a/vsl/vst/23402?subId=&playerWidth=426&playerHeight=239&pageUri=http%3A%2F%2Fwww.givemejav.com%2F&referer=
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23402/js
Protocol
HTTP/1.1
Server
88.208.9.35 Amsterdam, Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
a32a0f0b586a3c5617ceda05e5769676d0e05ea3a0120d7df6bf3b07a22e8c15

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/
Origin
http://www.givemejav.com

Response headers

Date
Mon, 26 Nov 2018 01:22:25 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/xml; charset=UTF-8
Access-Control-Allow-Origin
http://www.givemejav.com
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
preroll.engine
engine.phn.doublepimp.com/
11 KB
3 KB
XHR
General
Full URL
https://engine.phn.doublepimp.com/preroll.engine?id=52a55c19-4bba-4caf-a1b1-c19d0ecc8ed5&zid=9276&pageurl=http%3A%2F%2Fwww.givemejav.com%2F&subId=25008&pw=0&ph=0
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23402/js
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
69.89.69.120 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
4bee17d6e24061536e2df9c10b28a3f0f60aef2819f32eaeeddc31c0be212816

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/
Origin
http://www.givemejav.com

Response headers

date
Mon, 26 Nov 2018 01:22:25 GMT
content-encoding
gzip
server
Microsoft-IIS/10.0
status
200
x-powered-by
ASP.NET
vary
Accept-Encoding
p3p
CP="CAO PSA OUR IND"
access-control-allow-origin
http://www.givemejav.com
cache-control
private
access-control-allow-credentials
true
content-type
text/xml; charset=utf-8
content-length
2691
c
serve.popads.net/
344 B
879 B
Script
General
Full URL
http://serve.popads.net/c?r=1543195345&v=3&siteId=1424058&minBid=&popundersPerIP=&blockedCountries=&documentRef=&s=1600,1200,1,1600,1200
Requested by
Host: c1.popads.net
URL: http://c1.popads.net/pop.js
Protocol
HTTP/1.1
Server
216.21.13.11 , United States, ASN53334 (TUT-AS - Total Uptime Technologies, LLC, US),
Reverse DNS
Software
/
Resource Hash
7db120c5e6c0ace616f46002ff5792004a5bc84d3d1a73d367ca77ec56552d43

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/
Origin
http://www.givemejav.com

Response headers

Pragma
no-cache
Date
Mon, 26 Nov 2018 01:22:25 GMT
Access-Control-Allow-Origin
*
Content-Type
text/javascript;charset=UTF-8
PopAds-EC
4
Cache-Control
private, no-store, no-cache, must-revalidate, no-transform, max-age=0
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
344
/
c.adsco.re/
5 B
404 B
Script
General
Full URL
http://c.adsco.re/
Requested by
Host: serve.popads.net
URL: http://serve.popads.net/c?r=1543195345&v=3&siteId=1424058&minBid=&popundersPerIP=&blockedCountries=&documentRef=&s=1600,1200,1,1600,1200
Protocol
HTTP/1.1
Server
2606:4700::6811:a7ba , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
a6bdfcd47d10e9491b11ac64c8000b525b1dfb3d7590668bc4637f05a50f183b

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Mon, 26 Nov 2018 01:22:25 GMT
Server
cloudflare
Vary
Accept-Encoding
Content-Type
text/plain;charset=UTF-8
Cache-Control
max-age=259200,public,immutable
Connection
keep-alive
CF-RAY
47f88b3e4037c2fb-FRA
Content-Length
5
v3
pt.ptawe.com/vast/
4 KB
4 KB
XHR
General
Full URL
https://pt.ptawe.com/vast/v3?psid=ed_sexuvs1&utm_source=netwkclckne&utm_medium=network&ms_notrack=1&noc=1
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23402/js
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
93.93.51.191 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
unknown /
Resource Hash
04c11049700148b1bac53d78d8aef2d37483de8116ee0b07e44579ca15f0b782

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.givemejav.com/
Origin
http://www.givemejav.com

Response headers

date
Mon, 26 Nov 2018 01:22:25 GMT
server
unknown
status
200
content-type
text/xml; charset=utf-8
access-control-allow-origin
http://www.givemejav.com
cache-control
no-cache
access-control-allow-credentials
true
x-real-source
-
c355b5c3aabfba08b5279478372cc127.mp4
galleryn3.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/
32 KB
0
Media
General
Full URL
https://galleryn3.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/c355b5c3aabfba08b5279478372cc127.mp4
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
93.93.51.190 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Referer
http://www.givemejav.com/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=0-
chrome-proxy
frfr

Response headers

date
Mon, 26 Nov 2018 01:22:26 GMT
last-modified
Mon, 08 Oct 2018 13:54:46 GMT
server
nginx
etag
"1680e5fcc3755f3c1e92b542d60ad7ba"
status
206
content-type
video/mp4
Content-Range
bytes 0-1278707/1278708
cache-control
max-age=1209600, public
Content-Length
1278708
expires
Mon, 10 Dec 2018 01:22:26 GMT
truncated
/
715 B
0
Image
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
5a3f1dd74233f605e511f1b5b244bedf85ac88ba264caf4d6401bc7ec2017dcd

Request headers

Response headers

Access-Control-Allow-Origin
*
Content-Type
image/png
truncated
/
2 KB
0
Image
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
9d02d662da8a47fb5fb610b545007507b6017028043dbb63cd09ec897d3b9627

Request headers

Response headers

Access-Control-Allow-Origin
*
Content-Type
image/png
track.engine
engine.phn.doublepimp.com/
0
3 KB
Image
General
Full URL
http://engine.phn.doublepimp.com/track.engine?dcid=3_ctx_86efce11-1e79-42d4-a222-17ac025f6209&evt=3&evtData=%7b%22am%22%3anull%2c%22EventType%22%3a3%2c%22v2%22%3anull%2c%22v%22%3a%22W_IuYXNUSW91rm2EfQidqCmux9vj3rCyhOM38-FVRdDebQY84qOS5JZHAWU2looN0Vzj5S-XK649v_3nYCqoGdjm5FceXuZm6etEOwEdeFsxJNu-PaOlflS_4nvWXoWM_DohU4u2pPMf-XYLsohwHKf2rj_F6dV4oLqVLUDMmLEoVP0FP7M4IHQN7uPQXQPfrB8K0DZyp3QoxNRvRnWVjfnfqZ34110Fx5Ag6Ub1XgbOomGZu81awsAIK_IlGWSi1V_py6X8gC1KdoFH3PhLz2lsRgME-GjUtIXWyRj4vbgGzxWbrAi9LGYEmc1_tSmS3s4fRv6aKLGQTO_DDXKdsY6nmGd98WNEaSTPkb-d3Vo8KRFFH0HpvkTaFGTCYSGXPvES8yYGYbkVxjfzxwkBuFRt3V0r4FmltXhjazFH48BhxW4L4jApQkGIwFVUJ5cilUqCEsfazgMtGY47xggbb7akPkhd0c2a_fD2OJLlLAmCHoWgkKfaBaeApgfeXjA4AVD3t6quZVMUMhfCv9XmSz7MWVMcoBuw7sQtVamOv34TMOIcnTlZQmhj2s4Q0Gxvtr2q3ebYsFIqaRYooZB08oPxx0ByHml9JAFVX93PyifduGd7kdLtmY0N7qA10kmI_3kgThegIASnp5HPAp4yfbn9Pd3BFfX0bfr0TAaquHuh2Xgqujuei9qiEqw2PFBWWNz3q2U9wWWoOX0X9c61KeMQfrcuvMegawXbc552KzWNk-y6Hsp0g9Hnqut36MAM1Hm2aoMUEmur6PKbJXjokOehl-XORJQKLO6DDeZR0LQhW5U4LhyOXac768OxGt_pG9GA7t2xYl0TDPmof949u9Z_kRoJdxBSjLSB-rsVmWskkrNvlFTRf0CIWEIP6JGW_my2b9lp_VS-ENQvAj8xjqEZA0usLL4TCcK1BX57V9FBcLSm3GsV4AA7fZqGwp8goTrCZ1NULgShL-4XhOMz8r4rxZsbUzGETprGqpHam872hJFDh5hK6n0kafYC1Ivk3XJrXkkja89OjZm6kSX2Zt9aToh1srpr7W-700nBgyUEKO5CYfx03LeS2g8cfzhTWBZUweFCwqVTZS0Qut9fVj95BKILjZDKrbpx8VO10eE69LPa9q__E9gDI87qqhbibF0BPz_Tsng-RB0SnN-S2cTtHuXHfIJzlwjmX1an1yxikLKjx9E2VsdcNf5Xto_UCiElZgIgec6fMDque0pFHXAOE3p0-rkg8G544q9COmSkpBlndKgzjLKgxcjLVUd93QdZlDQ69toTVQV74AX1Igh2jkT7G5KVM7diCdCTVvVJZOLxsVIj7ahAkSES_8h1wQZfgMyloEURbTmLFjw0U1pvKCeEfCAH9BEDvPe_hSfLwhrsI8QDtaDJA8Q4YB1-tAfS4KG48yiMECV0sC5VuKxPmw0BKNFZbPrydI08e3Z6a3ZormcDmQsmWsurf6YGiEXcatfyCSyJLNmTBNAtyRcX_F3yMErIA-gifoog8tS8mS7c0t3vLp-JDONPBDienFCyARYHBVsZeC0PcOdHKWPukq7MQNVRWMlUVkhJpK_wUwqpHX_fWCwKnhewnYFDhIHQKjZF5KqE9bAcTEUe73-Mzd5oW7VKtW4KbAXuU04fjYyHEQcRya4hhaFPxT83L4FYLkItrwN7ek00Ybsojph24K-18A2vZHQU0jdNf_Y1%22%7d
Protocol
HTTP/1.1
Server
69.89.69.121 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Mon, 26 Nov 2018 01:22:25 GMT
Server
Microsoft-IIS/10.0
X-Powered-By
ASP.NET
P3P
CP="CAO PSA OUR IND"
Access-Control-Allow-Origin
http://engine.phn.doublepimp.com:8890
Cache-Control
private
Access-Control-Allow-Credentials
true
Content-Length
0
8Gk.gif
pt.ptawe.com/lnlLS/
43 B
309 B
Image
General
Full URL
http://pt.ptawe.com/lnlLS/8Gk.gif?pstool=401_1&psid=ed_sexuvs1&utm_source=netwkclckne&utm_medium=network&noc=1
Protocol
HTTP/1.1
Server
93.93.51.191 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
unknown /
Resource Hash
cf4724b2f736ed1a0ae6bc28f1ead963d9cd2c1fd87b6ef32e7799fc1c5c8bda

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Mon, 26 Nov 2018 01:22:26 GMT
Last-Modified
Mon, 28 Sep 1970 06:00:00 GMT
Server
unknown
Content-Type
image/gif
Cache-Control
no-cache
X-Real-Source
-
Connection
close
Content-Length
43
Expires
Mon, 26 Nov 2018 01:22:25 GMT
collect
www.google-analytics.com/
35 B
104 B
Image
General
Full URL
https://www.google-analytics.com/collect?t=pageview&ds=vastplayer&dl=https%3A%2F%2Fpt.ptawe.com%2Fvast%2Fv3%3Fms_notrack%3D1%26noc%3D1%26psid%3Ded_sexuvs1%26utm_medium%3Dnetwork%26utm_source%3Dnetwkclckne&dr=http%3A%2F%2Fwww.givemejav.com%2F&cid=4a02304584594a607e1b32d4ecebcd91&cn=vast%2Fv3%2Fpr&cs=netwkclckne&cm=network&z=1543195345&cd1=ArianaGrant&cd2=ed_sexuvs1&cd3=jsm&cd4=401_1&cd5=girl&cc=pr.20c_grl_de_ArianaGrant_40_18.mp4&tid=UA-45543902-10&v=1
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4001:819::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

pragma
no-cache
date
Mon, 12 Nov 2018 17:40:45 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
age
1150901
status
200
content-type
image/gif
access-control-allow-origin
*
cache-control
no-cache, no-store, must-revalidate
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
35
expires
Mon, 01 Jan 1990 00:00:00 GMT
c355b5c3aabfba08b5279478372cc127.mp4
galleryn3.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/
33 KB
33 KB
Media
General
Full URL
https://galleryn3.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/c355b5c3aabfba08b5279478372cc127.mp4
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
93.93.51.190 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
nginx /
Resource Hash
76a37fe58544ff04d942f812c2fff4cf05a96cb07b89c0b026961a5ffb6dd932

Request headers

Referer
http://www.givemejav.com/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=1245184-

Response headers

date
Mon, 26 Nov 2018 01:22:26 GMT
last-modified
Mon, 08 Oct 2018 13:54:46 GMT
server
nginx
etag
"1680e5fcc3755f3c1e92b542d60ad7ba"
status
206
content-type
video/mp4
Content-Range
bytes 1245184-1278707/1278708
cache-control
max-age=1209600, public
Content-Length
33524
expires
Mon, 10 Dec 2018 01:22:26 GMT
c355b5c3aabfba08b5279478372cc127.mp4
galleryn3.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/
1 MB
0
Media
General
Full URL
https://galleryn3.awemwh.com/f8d2e11bd6c43618af00d6f28c91232a14/c355b5c3aabfba08b5279478372cc127.mp4
Protocol
SPDY
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
93.93.51.190 , Luxembourg, ASN34655 (DOCLER-AS, HU),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Referer
http://www.givemejav.com/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=32768-

Response headers

date
Mon, 26 Nov 2018 01:22:26 GMT
last-modified
Mon, 08 Oct 2018 13:54:46 GMT
server
nginx
etag
"1680e5fcc3755f3c1e92b542d60ad7ba"
status
206
content-type
video/mp4
Content-Range
bytes 32768-1278707/1278708
cache-control
max-age=1209600, public
Content-Length
1245940
expires
Mon, 10 Dec 2018 01:22:26 GMT
imp
ca.clcknads.pro/v2/a/vsl/
0
493 B
Image
General
Full URL
http://ca.clcknads.pro/v2/a/vsl/imp?d=AV39A%2BHZZOXa2ldJUIVScGWsMJ%2FNY7buejNWxAAUYM5lFol67CNo08jihwWheeZVFIQXFrZOOfrzPRc3BeSONUcbaIYaWY6bFf7T8x5sGKFS6fbEhcPdYNoIe09FAJZ87Od2%2B1zvWRpgWyDkk93boX5uXke8xRS5H50PlcbjKOr7%2FoZyumktFoZB3fmYFUEm1kiPXc0T4N0XoJ7%2BfJ7k8zwx1JURUWV27RftxmS5GO3XnKVGhQcsTW5HwLlddursBUeSuA67rkKLSlFGlrKh4lC%2F5jrWM7%2FaaZO6Vl7pg5RE18OUvbeorIO4YNGHQxkqB5dTks%2FO4PERgDXZSXIrncCnd4ABXoqD8%2BvAxtNZ8l%2Fe9es7TMFCvXOw%2FPnFwc08D9jNDc9PU71KFjlC9G%2FPSjv1nwT1Z6rRJ0Z3MFA9uA%2BsFNMEZLmjRy0v0OloPtASYEGKesXE%2BokE%2BORiUv6GUDwKE3mYkeeZn3A7NPAixR9mt7wAVb1LbloTQlkllhXNmLT5ySPMfH%2B%2BAEm0hr0cCaOQxrAcpaxfj1Tvsd2No4TWcf8cwqwzWOgFIC%2BZ%2FNcDK2Fmat7YZ6zkUem0luH16WCudKBEHWJbbTSQW8VjR3TQ3F%2F7aJxATSjMza9vbd8OHAXcpOBfX8YZe4%2Fwq7i4CeviLzo0OK7nb95gOoV7VIyNv7A8xRBGHLDw6OGiqC%2FpumvhkRNuBSWkB63Zfk1X59iW30uMEZokWww1WGmR3CFFCq00PlaI7RjXYcSxwZund%2BCnJODhLmL%2B9COuxrZ74tQtSmfLs7N5X0IwQMQHoNFtBabja9QYV6penGiHDK5RDZQaxBRQfX3fViuzhtNVBDaoriJwTay53WcV5qMeXSM5d4dpQU9%2Bx%2B75bt%2Fcg37uymp1aHv0gOpmSS5EG2%2Fs2WAyf1u5Rns0OOBNRpVtWwOh0ocqRjHZcb3C9saQK8xP%2FNWniGXvDjMTHsMkoB7oRhZE4bdm6J75aF6k%2Fv7abjQHCZR6ZuSL%2FZjgNbbXyKNoU5ETVAXPHJ%2BSLQLAmlDy11NfI2%2F2HO4laQ%2FQPju7wgtazIF6aEd4LuwBz6NBNc%2Bzyci7ErXaEcQ2Pq8eEDvddkvokpf8%2BkZ2xIEOpYo2eXmUKy1CxpJvCQla1xWfqnZcxiJzh%2Fwyc5HjGLRcHu9lbhibh3TB6WNc6npHMEw3X3w9jL5gfRmdxzsrRh3ztgxYAN%2FEz5CmKv7aFxFeEL5VuVf5dAYHr2uoatyX5SxdK%2BTx2JhkHmbcSxNGOR2IPbazCcbHLrIB23kjgkLj%2BZSaI%2Fu1%2B70mLlzdh4Jq6ldTkAtJuLAP%2BnvPYJ11yQlKihWGYzvYTSGR4%2FMlchAHWcEcwglltCfJdxjZgwq6zWxoaknBkF516XxXU%2FW2qXdMiHv7k9hGeAbPcG3few7jfjsJz5MQPwiRldrCZKrQMJOomEYncU3CXadSBBh9WcHnoBdT%2F5z54lMZNq4lo06BvubgQmKTH4tk%2FXAJ%2FYFbh6yccjYNqDSMpV13HK%2BZ7MdZ53FJ%2BeFbABpgQO8q3RPihWJcKJc%2FY03UIUcbC%2FJceHS%2FEUVKXfYg2w5mLQtg%2B885qN3wkd0Wr1T%2B8efOfFBzdrGm2ipGwZub0uxU4tq6sVx6vq5ATgnSOxss6%2FjaCh7SWUZxPa6EqSkKhRpF5M7pXOD4MT9qpAHm6dx9Kat5hT2YM6TGn2qlUh8CFtCpLTI501PTxMtZCYlQBUZVj7fdPKCVy%2FAoexa4tH21B0VgPA%3D%3D
Protocol
HTTP/1.1
Server
88.208.9.35 Amsterdam, Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Pragma
no-cache
Date
Mon, 26 Nov 2018 01:22:26 GMT
Referrer-Policy
unsafe-url
Last-Modified
Mon, 26 Nov 2018 01:22:26 UTC
Server
nginx
Access-Control-Max-Age
86400
P3p
CP="NOI DEVa TAIa OUR BUS UNI STA"
Access-Control-Allow-Origin
*
Cache-Control
private, no-cache, no-store, must-revalidate, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Content-Type
text/plain; charset=UTF-8
Expires
Mon, 26 Nov 2018 01:22:26 UTC
collect
www.google-analytics.com/
35 B
99 B
Image
General
Full URL
https://www.google-analytics.com/collect?t=event&ds=vastplayer&ea=vast+tracking&ec=vast+player&el=start&dl=https%3A%2F%2Fpt.ptawe.com%2Fvast%2Fv3%3Fms_notrack%3D1%26noc%3D1%26psid%3Ded_sexuvs1%26utm_medium%3Dnetwork%26utm_source%3Dnetwkclckne&dr=http%3A%2F%2Fwww.givemejav.com%2F&cid=4a02304584594a607e1b32d4ecebcd91&cn=vast%2Fv3%2Fpr&cs=netwkclckne&cm=network&z=1543195345&cd1=ArianaGrant&cd2=ed_sexuvs1&cd3=jsm&cd4=401_1&cd5=girl&cc=pr.20c_grl_de_ArianaGrant_40_18.mp4&tid=UA-45543902-10&v=1
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4001:819::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

pragma
no-cache
date
Mon, 12 Nov 2018 17:40:45 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
age
1150901
status
200
content-type
image/gif
access-control-allow-origin
*
cache-control
no-cache, no-store, must-revalidate
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
35
expires
Mon, 01 Jan 1990 00:00:00 GMT
track.engine
engine.phn.doublepimp.com/
0
285 B
Image
General
Full URL
http://engine.phn.doublepimp.com/track.engine?dcid=3_ctx_86efce11-1e79-42d4-a222-17ac025f6209&evt=2&evtData=%7b%22vp%22%3a1%2c%22v%22%3a%22W_IuYXNUSW91rm2EfQidqCmux9vj3rCyhOM38-FVRdDebQY84qOS5JZHAWU2looN0Vzj5S-XK649v_3nYCqoGdjm5FceXuZm6etEOwEdeFsxJNu-PaOlflS_4nvWXoWM_DohU4u2pPMf-XYLsohwHKf2rj_F6dV4oLqVLUDMmLEoVP0FP7M4IHQN7uPQXQPfrB8K0DZyp3QoxNRvRnWVjfnfqZ34110Fx5Ag6Ub1XgbOomGZu81awsAIK_IlGWSi1V_py6X8gC1KdoFH3PhLz2lsRgME-GjUtIXWyRj4vbgGzxWbrAi9LGYEmc1_tSmS3s4fRv6aKLGQTO_DDXKdsY6nmGd98WNEaSTPkb-d3Vo8KRFFH0HpvkTaFGTCYSGXPvES8yYGYbkVxjfzxwkBuFRt3V0r4FmltXhjazFH48BhxW4L4jApQkGIwFVUJ5cilUqCEsfazgMtGY47xggbb7akPkhd0c2a_fD2OJLlLAmCHoWgkKfaBaeApgfeXjA4AVD3t6quZVMUMhfCv9XmSz7MWVMcoBuw7sQtVamOv34TMOIcnTlZQmhj2s4Q0Gxvtr2q3ebYsFIqaRYooZB08oPxx0ByHml9JAFVX93PyifduGd7kdLtmY0N7qA10kmI_3kgThegIASnp5HPAp4yfbn9Pd3BFfX0bfr0TAaquHuh2Xgqujuei9qiEqw2PFBWWNz3q2U9wWWoOX0X9c61KeMQfrcuvMegawXbc552KzWNk-y6Hsp0g9Hnqut36MAM1Hm2aoMUEmur6PKbJXjokOehl-XORJQKLO6DDeZR0LQhW5U4LhyOXac768OxGt_pG9GA7t2xYl0TDPmof949u9Z_kRoJdxBSjLSB-rsVmWskkrNvlFTRf0CIWEIP6JGW_my2b9lp_VS-ENQvAj8xjqEZA0usLL4TCcK1BX57V9FBcLSm3GsV4AA7fZqGwp8goTrCZ1NULgShL-4XhOMz8r4rxZsbUzGETprGqpHam872hJFDh5hK6n0kafYC1Ivk3XJrXkkja89OjZm6kSX2Zt9aToh1srpr7W-700nBgyUEKO5CYfx03LeS2g8cfzhTWBZUweFCwqVTZS0Qut9fVj95BKILjZDKrbpx8VO10eE69LPa9q__E9gDI87qqhbibF0BPz_Tsng-RB0SnN-S2cTtHuXHfIJzlwjmX1an1yxikLKjx9E2VsdcNf5Xto_UCiElZgIgec6fMDque0pFHXAOE3p0-rkg8G544q9COmSkpBlndKgzjLKgxcjLVUd93QdZlDQ69toTVQV74AX1Igh2jkT7G5KVM7diCdCTVvVJZOLxsVIj7ahAkSES_8h1wQZfgMyloEURbTmLFjw0U1pvKCeEfCAH9BEDvPe_hSfLwhrsI8QDtaDJA8Q4YB1-tAfS4KG48yiMECV0sC5VuKxPmw0BKNFZbPrydI08e3Z6a3ZormcDmQsmWsurf6YGiEXcatfyCSyJLNmTBNAtyRcX_F3yMErIA-gifoog8tS8mS7c0t3vLp-JDONPBDienFCyARYHBVsZeC0PcOdHKWPukq7MQNVRWMlUVkhJpK_wUwqpHX_fWCwKnhewnYFDhIHQKjZF5KqE9bAcTEUe73-Mzd5oW7VKtW4KbAXuU04fjYyHEQcRya4hhaFPxT83L4FYLkItrwN7ek00Ybsojph24K-18A2vZHQU0jdNf_Y1%22%7d
Protocol
HTTP/1.1
Server
69.89.69.121 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Mon, 26 Nov 2018 01:22:31 GMT
Server
Microsoft-IIS/10.0
X-Powered-By
ASP.NET
P3P
CP="CAO PSA OUR IND"
Access-Control-Allow-Origin
http://engine.phn.doublepimp.com:8890
Cache-Control
private
Access-Control-Allow-Credentials
true
Content-Length
0
track.engine
engine.phn.doublepimp.com/
0
285 B
Image
General
Full URL
http://engine.phn.doublepimp.com/track.engine?dcid=3_ctx_86efce11-1e79-42d4-a222-17ac025f6209&evt=2&evtData=%7b%22vp%22%3a2%2c%22v%22%3a%22W_IuYXNUSW91rm2EfQidqCmux9vj3rCyhOM38-FVRdDebQY84qOS5JZHAWU2looN0Vzj5S-XK649v_3nYCqoGdjm5FceXuZm6etEOwEdeFsxJNu-PaOlflS_4nvWXoWM_DohU4u2pPMf-XYLsohwHKf2rj_F6dV4oLqVLUDMmLEoVP0FP7M4IHQN7uPQXQPfrB8K0DZyp3QoxNRvRnWVjfnfqZ34110Fx5Ag6Ub1XgbOomGZu81awsAIK_IlGWSi1V_py6X8gC1KdoFH3PhLz2lsRgME-GjUtIXWyRj4vbgGzxWbrAi9LGYEmc1_tSmS3s4fRv6aKLGQTO_DDXKdsY6nmGd98WNEaSTPkb-d3Vo8KRFFH0HpvkTaFGTCYSGXPvES8yYGYbkVxjfzxwkBuFRt3V0r4FmltXhjazFH48BhxW4L4jApQkGIwFVUJ5cilUqCEsfazgMtGY47xggbb7akPkhd0c2a_fD2OJLlLAmCHoWgkKfaBaeApgfeXjA4AVD3t6quZVMUMhfCv9XmSz7MWVMcoBuw7sQtVamOv34TMOIcnTlZQmhj2s4Q0Gxvtr2q3ebYsFIqaRYooZB08oPxx0ByHml9JAFVX93PyifduGd7kdLtmY0N7qA10kmI_3kgThegIASnp5HPAp4yfbn9Pd3BFfX0bfr0TAaquHuh2Xgqujuei9qiEqw2PFBWWNz3q2U9wWWoOX0X9c61KeMQfrcuvMegawXbc552KzWNk-y6Hsp0g9Hnqut36MAM1Hm2aoMUEmur6PKbJXjokOehl-XORJQKLO6DDeZR0LQhW5U4LhyOXac768OxGt_pG9GA7t2xYl0TDPmof949u9Z_kRoJdxBSjLSB-rsVmWskkrNvlFTRf0CIWEIP6JGW_my2b9lp_VS-ENQvAj8xjqEZA0usLL4TCcK1BX57V9FBcLSm3GsV4AA7fZqGwp8goTrCZ1NULgShL-4XhOMz8r4rxZsbUzGETprGqpHam872hJFDh5hK6n0kafYC1Ivk3XJrXkkja89OjZm6kSX2Zt9aToh1srpr7W-700nBgyUEKO5CYfx03LeS2g8cfzhTWBZUweFCwqVTZS0Qut9fVj95BKILjZDKrbpx8VO10eE69LPa9q__E9gDI87qqhbibF0BPz_Tsng-RB0SnN-S2cTtHuXHfIJzlwjmX1an1yxikLKjx9E2VsdcNf5Xto_UCiElZgIgec6fMDque0pFHXAOE3p0-rkg8G544q9COmSkpBlndKgzjLKgxcjLVUd93QdZlDQ69toTVQV74AX1Igh2jkT7G5KVM7diCdCTVvVJZOLxsVIj7ahAkSES_8h1wQZfgMyloEURbTmLFjw0U1pvKCeEfCAH9BEDvPe_hSfLwhrsI8QDtaDJA8Q4YB1-tAfS4KG48yiMECV0sC5VuKxPmw0BKNFZbPrydI08e3Z6a3ZormcDmQsmWsurf6YGiEXcatfyCSyJLNmTBNAtyRcX_F3yMErIA-gifoog8tS8mS7c0t3vLp-JDONPBDienFCyARYHBVsZeC0PcOdHKWPukq7MQNVRWMlUVkhJpK_wUwqpHX_fWCwKnhewnYFDhIHQKjZF5KqE9bAcTEUe73-Mzd5oW7VKtW4KbAXuU04fjYyHEQcRya4hhaFPxT83L4FYLkItrwN7ek00Ybsojph24K-18A2vZHQU0jdNf_Y1%22%7d
Protocol
HTTP/1.1
Server
69.89.69.121 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Mon, 26 Nov 2018 01:22:35 GMT
Server
Microsoft-IIS/10.0
X-Powered-By
ASP.NET
P3P
CP="CAO PSA OUR IND"
Access-Control-Allow-Origin
http://engine.phn.doublepimp.com:8890
Cache-Control
private
Access-Control-Allow-Credentials
true
Content-Length
0
collect
www.google-analytics.com/
35 B
106 B
Image
General
Full URL
https://www.google-analytics.com/collect?t=event&ds=vastplayer&ea=vast+tracking&ec=vast+player&el=midpoint&dl=https%3A%2F%2Fpt.ptawe.com%2Fvast%2Fv3%3Fms_notrack%3D1%26noc%3D1%26psid%3Ded_sexuvs1%26utm_medium%3Dnetwork%26utm_source%3Dnetwkclckne&dr=http%3A%2F%2Fwww.givemejav.com%2F&cid=4a02304584594a607e1b32d4ecebcd91&cn=vast%2Fv3%2Fpr&cs=netwkclckne&cm=network&z=1543195345&cd1=ArianaGrant&cd2=ed_sexuvs1&cd3=jsm&cd4=401_1&cd5=girl&cc=pr.20c_grl_de_ArianaGrant_40_18.mp4&tid=UA-45543902-10&v=1
Protocol
SPDY
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4001:819::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.givemejav.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

pragma
no-cache
date
Mon, 12 Nov 2018 17:40:45 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
age
1150911
status
200
content-type
image/gif
access-control-allow-origin
*
cache-control
no-cache, no-store, must-revalidate
alt-svc
quic=":443"; ma=2592000; v="44,43,39,35"
content-length
35
expires
Mon, 01 Jan 1990 00:00:00 GMT

Verdicts & Comments Add Verdict or Comment

55 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 string| _DfIrLoGdmy6vdQOr object| UmDWe9Dn8Fr2nKAs function| cIPop function| s3EE object| leca object| Base64 object| BJPPopAds object| detectZoom object| PopAds object| _pao object| mnr

4 Cookies

Domain/Path Name / Value
.exoclick.com/ Name: __uvt
Value: a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225bfb4ad023dca6.992103924252334423%22%3B%7D
.exoclick.com/ Name: impressions
Value: x%9C%95%CB%B9%0D%C0+%10%05%D1%5E%A8%60O%60%FFVCHLh%D1%BB%91%2C%17%400%C1%0Bf%40%F1LH%ED%CA%9Ds%7C%A4%9C%E0%3F7%E5p5%3B%90%5C0%146%A3%92%FB%98j0%D1%FD%E7-Z%97%CBo%BF%EF4%2Bn
.clcknads.pro/ Name: lvslcid
Value: 4332
.clcknads.pro/ Name: uuid
Value: 17b2111125346b3623a7ffcd4a01b71f7121b8d5ba720dd60e8bbcb54cbb7539

107 Console Messages

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: 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: 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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(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/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uIChkb2N1bWVudCkgewoJdmFyIG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKCQlpbWcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnCgkJaW1nLnN0eWxlLnRvcCA9IDAKCQlpbWcuc3R5bGUubGVmdCA9IDAKCQlpbWcuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJwoJCWltZy5zcmMgPSAnaHR0cHM6Ly9jYS5jbGNrbmFkcy5wcm8vdjEvcHQvJyArIG5hbWUKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykKCQlyZXR1cm4gaW1nCgl9Cgl2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChidG9hKChkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0oZG9jdW1lbnQpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKICBpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKICAgIHJldHVybgogIH0KICB2YXIgYmV0dGVyUG9wdW5kZXIgPSB3aW5kb3cuVW1EV2U5RG44RnIybktBcwogIHZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCiAgdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgogIGZ1bmN0aW9uIFBvcHVuZGVyKG9wdGlvbnMpIHsKICAgIHRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKICAgIHRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CiAgICB0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSA9IHRoaXMuaW1wcmVzc2lvbnNLZXkgKyAnX3BwJwogICAgdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCiAgICB0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CiAgICB0aGlzLmxpbWl0ID0gb3B0aW9ucy5saW1pdAogICAgdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQogICAgdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgogICAgaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKICAgICAgdmFyIGxhc3RQYWdlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkpIHx8ICcnCiAgICAgIGlmIChsYXN0UGFnZSAhPT0gJycgKyB3aW5kb3cubG9jYXRpb24pIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQogICAgICB9CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKICAgIH0KICB9CgogIFBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewogICAgICB2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCiAgICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgICB9CiAgICB9CiAgICBpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCkgewogICAgICB2YXIgc2Vzc2lvbkltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgICAgaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDAgJiYgc2Vzc2lvbkltcHJlc3Npb25zID49IHRoaXMubGltaXRQZXJTZXNzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgIH0KICAgIH0KICAgIHZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQogICAgICByZXR1cm4gdHJ1ZQogICAgfQogICAgcmV0dXJuIGltcHJlc3Npb25zIDwgdGhpcy5saW1pdAogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CiAgICAgIHZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKICAgIH0KICAgIGlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CiAgICAgIHZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAogICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCiAgICB9CiAgICB2YXIgaW1wcmVzc2lvbnMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5KSB8IDAKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKICAgIHZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCiAgICBpZiAoc3RhcnRlZEF0ID09PSAwKSB7CiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgfCAwKQogICAgfQogIH0KCiAgUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKICAgIHZhciBzZWxmID0gdGhpcwogICAgdmFyIGlnbm9yZVRvID0gJycKICAgIHZhciBiaW5kVG8gPSAnJwogICAgdmFyIHJlbG9hZCA9IGZhbHNlCiAgICBiZXR0ZXJQb3B1bmRlci5jb25maWcoewogICAgICBjb3ZlclRhZ3M6IFsndmlkZW8nLCAnaWZyYW1lJ10sCiAgICAgIHdlYmtpdEFuY2hvckJsYW5rOiBmYWxzZSwKICAgICAgdGFiVW5kZXJJZ25vcmVUYXJnZXRCbGFuazogZmFsc2UsCiAgICAgIGlnbm9yZVRvOiBpZ25vcmVUbyA/IGlnbm9yZVRvLnNwbGl0KCcsJykgOiBudWxsLAogICAgICBiaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpIDogbnVsbCwKICAgICAgZGVsYXk6IDEKICAgIH0pCiAgICBiZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CiAgICAgIG5ld1RhYjogdHJ1ZSwKICAgICAgZGV2aWNlOiAnYW55JywKICAgICAgdW5kZXI6IHRydWUsCiAgICAgIGNvb2tpZUV4cGlyZXM6IDEsCiAgICAgIHNob3VsZEZpcmU6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQogICAgICB9LAogICAgICBiZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgc2VsZi5pbmNyZW1lbnQoKQogICAgICB9LAogICAgICBhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKICAgICAgICByZWxvYWQgJiYgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0KICAgIH0pCiAgfQoKICB3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CiAgICB2YXIgcG9wdW5kZXIgPSBuZXcgUG9wdW5kZXIoewogICAgICBzdGFydGVkQXRLZXk6ICdfY19wX3N0JywKICAgICAgaW1wcmVzc2lvbnNLZXk6ICdfY19wX2knLAogICAgICBmcmVxdWVuY3k6IDIxNjAwLAogICAgICBsaW1pdDogMSwKICAgICAgbGltaXRQZXJQYWdlOiAwLAogICAgICBsaW1pdFBlclNlc3Npb246IDAKICAgIH0pCiAgICBwb3B1bmRlci5hZGQodXJsKQogIH0KfSkod2luZG93KQo=(Line 1)
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
engine.phn.doublepimp.com
fonts.googleapis.com
fonts.gstatic.com
galleryn3.awemwh.com
gateway.ipfs.io
givemejav.com
maxcdn.bootstrapcdn.com
popmyads.com
pt.ptawe.com
serve.popads.net
statdynamic.com
syndication.exoclick.com
syndication.exosrv.com
www.givemejav.com
www.google-analytics.com
185.59.220.22
205.185.208.52
209.197.3.15
216.21.13.11
2602:fea2:1:78::
2606:2800:234:1f1f:1754:1fef:718:1223
2606:4700:20::6819:7b63
2606:4700:20::6819:7c63
2606:4700:30::6812:2af9
2606:4700:30::6812:2bf9
2606:4700:30::681b:a51e
2606:4700::6811:a7ba
2606:4700:e0::ac40:6b12
2a00:1450:4001:818::2003
2a00:1450:4001:819::200a
2a00:1450:4001:819::200e
52.4.72.68
69.89.69.120
69.89.69.121
88.208.9.35
93.93.51.190
93.93.51.191
94.31.29.128
95.211.229.245
95.211.229.246
04c11049700148b1bac53d78d8aef2d37483de8116ee0b07e44579ca15f0b782
05b85d96f41fff14d8f608dad03ab71e2c1017c2da0914d7c59291bad7a54f8e
0ca588365824625bcfbdec44c51dd3ebf384da0204211b08581e1a086640cf8a
157c4fa721442be1d5dd48560d8e8e27e2e03a2021e7549be520499485e783c1
18892974e756f0b15dd1894b7e37bbf0ba844a21c0b6b0b6f504724068022bd7
19e1c4c97917724cacf9f2e3c544ed0925a14ef28a79565b7bae38fc70ac82f2
19ee839bc4f979a444a74f31cbe0bdee3c3a8c5aab13cc97415e5d4302e433ce
21a1e6c760d9c80b7bd3f731eb01fee582e19d288aaab70b7aad20146652c719
250642837ad6a670281f3f0a053ecee4e1ad4aeee4e3a8830181d9d71804e47f
268a7f92197bce09886823c1ae070d6e519783da803df9f6f02ccb174ea3a6d7
2979f9a6e32fc42c3e7406339ee9fe76b31d1b52059776a02b4a7fa6a4fd280a
2f83d0bb492e6da654692a2398f21c09c03a6408e88c1b335fd165db0ae60e25
30523bc258e465e002caa8bb065b65a9fb808b62cd1a4c2d4b469a36d94152ed
3ee5fcab6982d8e5f6f09e46568b3045d0db8576c35cf079c094ea48e4aa0690
46cc2a8b937e158ef7b58afa74d0192801506f4a2c2bff0321ad4bb6a4670004
4939eae39bb1a36e8e7eb18ba7260138ef13d65965cb723e50516d1c89f43d06
4a857691cb98be81b1734bd18180d15ae0b6868ec4acf13cc9d07ec101d4660f
4bb1f2bb7e95a48ee696de5105d78fd2f258536cb19f668918e69a598726a42b
4bee17d6e24061536e2df9c10b28a3f0f60aef2819f32eaeeddc31c0be212816
4c973587224baf0274349912ee94c36a550f35cbbd7334f5c26ee0d2e581b657
522b879f920e3c11c24e44ac7a5cfe5e57a3a7b9cf6ad8b57ae995638466ea5f
563535724bb78dc140289ea9efea881946d88d7f24ca0a8bb54d69d0232ef6e4
597dfe69f97ab783d8e58e89e74d6d439c613d1e70daa92f8045ed50ebe67a6c
5a0f7592e96787285a9342bc71b60426576ddfc2800a585b8bbcb1f75b90bdfd
5a3f1dd74233f605e511f1b5b244bedf85ac88ba264caf4d6401bc7ec2017dcd
5e700835ec05293a3d0f9e354e7d038319d34521cd279e782198dff6d1dd58f2
5f337f92c11efbc43b1c170ce4c12c4b550377e542c1e4ee2178c2dc6cb5cf51
6659984fd64ddf715a345cfea92e11ff7ff1311709b2b046306dc7093a289b9a
66fb37f0a348652be4f1afc6bd5bbfa1de656d8ed495d3ddd9c19fa84d448cb1
679393d7154495e7f8d610ac79013b48a4957af64343d1b77f33bd555aa7c60d
7460a51cf3e648c6e7a64e4dcb473e4ff926bef3d6b82995a6ba75d02e2d855e
76a37fe58544ff04d942f812c2fff4cf05a96cb07b89c0b026961a5ffb6dd932
7db120c5e6c0ace616f46002ff5792004a5bc84d3d1a73d367ca77ec56552d43
7ea8308ec7dbe24f0d8ca6b4e2a1576d20742c7ba17b3397dc0c411549175275
7f405c028e030e8d5ceb7a4f4ea6e09269c8b6d6541c41484ffe1b5d22c9b048
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
857a774c3a18ab2f252b5b4f92ab90e1d7e9b9b1b534875f007e0f6a6cb77a61
880adcc066f9bc84b9476e274d3ed2c37703165c0c0aa6c976723b028e8c5b07
891419f946df422b905ea2718b79de7caeeda23db1bec83336118592e9338648
92ac508220f5bb60ec94e07650528eb66625f82a4740ada068cde05365781286
9d02d662da8a47fb5fb610b545007507b6017028043dbb63cd09ec897d3b9627
9d223c78f79534477ee1da849c39fa8d49b7df9e27ef3587ec3a085ea3c1117f
a26fd52082f9c6c191e6f75ca86d82544f74ec979da9c64406a89bea6247a9e9
a27edba0e34b2648a90a800ae94fdef3e39016d1b9bd6e54a31ede1f1cddfed0
a32a0f0b586a3c5617ceda05e5769676d0e05ea3a0120d7df6bf3b07a22e8c15
a36d46ceb2f6c8a636227f7ef04c842cdd72db093d51617c6942b60bec446920
a6bdfcd47d10e9491b11ac64c8000b525b1dfb3d7590668bc4637f05a50f183b
a9ceb73f02fd30b79868e03e646e359f4cffd4cd5922dabd7ce79a0a4fef1253
b688a3bcd1297cc0fe08e6e52fea14ba9108ee4b9a2052c03e7bac6e19347255
b7f573e089fa20f9f1cc523f502416bb2df0582a5e7665138e47841820604f46
be06cee347498997d696c3d72c972214543f4108d6283ae93727058c856bb221
bf454e92a043b1614355a71d8c45fdc30b6d693b00548ec9abfcd0046cc80b3b
c1041ae73b87637f6103d88bc940ae635ebc0e4aa98bc7bdd95b85cba9def4aa
c5e21dc7ea75409d95b40ea677bd6eccd2d9ff3950fce8c55230dcbb3de8b560
cf4724b2f736ed1a0ae6bc28f1ead963d9cd2c1fd87b6ef32e7799fc1c5c8bda
dae61547d8d6ca63cb693d3f0b8f682bdfd1ce13ba64b2c85b55fb983aca0198
df4f0b02edb073f63a2c7394f1d912529fc59356bb54ce0d46243cc9d6140984
e3109e55f0e8793c915798123861a0e9432e8d05a0032f467e7ccfe6aebf6c1f
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
e53958ea7556d07c3cd32670c97089812713eabfee1128191c9730b500b53864
ed530d322b3a383addfe4029cc9bcfbfa88410adc9aa7862f72efc226422bc3a
eece6e0c65b7007ab0eb1b4998d36dafe381449525824349128efc3f86f4c91c
f1fe5e81054af1526133af5cd1d23ff8b9e58d6e7baa8d5c6e28f87900882843
f3cf86046748fe91cf89243476126804cb5b502d7d00589865e3915771c41298
f45a718f2ad73832f02b726bf19c0bcc7eb0d4fb192af7f0d438ea58ac3ba32d
f54b6828d572dd5edf6d660ca918fcea6bbcab3f47275b610716d31fda3e647a
fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c
fefc31fe8b6a75aa50147bc062e2ed750e20c8d78fb24a02342c17f15f2f261a