Content-Type: multipart/related; start=; boundary=----------aE1bB7mWjKsLZBiYGCZAk5 Content-Location: http://www.indielondon.co.uk/DVD-Review/sanctum-andrew-wight-interview Subject: =?utf-8?Q?IndieLondon:=20Sanctum=20-=20Andrew=20Wight=20interview=20-=20Your=20London=20Reviews?= MIME-Version: 1.0 ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=sanctum-andrew-wight-interview.htm Content-Type: text/html; charset=utf-8; name=sanctum-andrew-wight-interview.htm Content-Id: Content-Location: http://www.indielondon.co.uk/DVD-Review/sanctum-andrew-wight-interview Content-Transfer-Encoding: 8bit IndieLondon: Sanctum - Andrew Wight interview - Your London Reviews

Sanctum - Andrew Wight interview

Sanctum

Interview by Rob Carnevale

ANDREW Wight, one of the producers of Sanctum and a world renowned diver, talks about the making of the film and some of the real life situations that inspired it.

Q. I gather Sanctum was inspired by a real-life near-death experience you were involved in? Can you talk a little about that?
Andrew Wight: Well, basically I’ve been a cave diver for many, many years but on the last day of one of my first diving expeditions at the Pannikin Plain Cave in Western Australia, we had a [freak] massive rain storm, which flooded the entrance and collapsed it. My team were trapped in there for nearly two days. It was a real ‘Oh my god’ moment and the sort of things that happened in that period of left an indelible impression on me. On that particular day, we were staring death in the face and not many people have experienced it and lived to tell the tale. So, even though Sanctum isn’t specifically about that experience, it does explore some of those emotions, including what the psychological torment was like.

Q. But what was it like to revisit those emotions when making the film though?
Andrew Wight: There were a couple of things that struck me. I mean, I continued to go cave diving after that experience and you kind of get hardened to it [the dangers]. But when came to making the film, I guess it did bring into sharp focus how bloody dangerous it is. I mean, Agnes Milowka, one of the stunt divers in the film who was a trained cave diver and who was really, really respected, passed away a few months ago in a cave diving accident in Australia doing precisely what we are doing in film, which was very sad.

But what we were trying to do with Sanctum is to give people an experience that they may or may not want to be a part of… to show them that there are people out there who want to push themselves and who risk paying the ultimate price for doing so. The film is about the psychology of that, as well as the beauty and the self sacrifice. So, I think that was more profound – realising that we had created an epitaph for someone, like Agnes, in real-life.

Q. What made you want to become a cave diver?
Andrew Wight: Initially, it was the awe and wonder of seeking out those places. I mean, I started by learning to scuba dive and seeing those crystal clear waters that so few people get to see. It hooks you in, it’s very seductive and it’s very compelling. As a young man growing up that was incredibly exciting. There are a lot of things in this world that you’ve got to have permission to do… whether it’s from parents, or getting a degree… but to be able to go somewhere without any restrictions, with just your equipment to rely on… that was a real charge.

Andrew Wight

Q. And how did you first become involved with James Cameron?
Andrew Wight: I was essentially sitting at home, minding my own business, when I got a phone call and a woman’s voice on the other end of the line said: “Are you Andrew White?” I said ‘yes’ and she said: “Mr James Cameron would like to talk to you.” I said: “The movie director? James Cameron who made Aliens, The Abyss and Titanic?” She said ‘yes’. So, I replied: “Sure, put him on!” I was half expecting it to be my university pals winding me up but sure enough it was him. And now, more than decade later on, we’ve made Sanctum together and remain friends.

Q. What was the reason behind the initial call? Was it for his documentary work?
Andrew Wight: Basically, he’d finished Titanic and wanted to focus his energy on deep sea exploration. But it had got to the point where it wasn’t quite working for him. He’d come off Titanic and his colleagues in Hollywood expected another massive movie. So, he had to say: “Look, I want to dive!” Then my name bubbled to the surface. I mean, I’ve been in the room when those calls have happened… when someone says: “Let’s get that guy…” But at the same time, I felt a certain amount of bemusement and amazement that this was actually happening to me – that someone was seeking me as the name to call. So, we started working together on his deep sea exploration and some of the documentaries that followed [Ghosts of The Abyss/Aliens of the Deep].

Q. How hands-on was James as producer on Sanctum?
Andrew Wight: He was basically our fairy godfather. He helped set it up, he helped get the money. He was basically a very compelling presence, especially when – with everything in place – he said: “Look, don’t f**k it up [laughs]!” I mean, what more encouragement do you need? And whenever I was in a spot where we needed advice, he was there to ask. Besides that, he pretty much left us to our own devices. But he had confidence in us because he knew the people involved. He knew we knew what we were doing because of the expertise involved. And he’s not going to put his name to something otherwise. But he was into it.

He loves this genre, he loves exploration and that sort of stuff. This was a low budget film by his standards and we bit off an awful lot in trying to make something which, I think, is visually spectacular and compelling in 3D. We were always asking ourselves: “Can we do a good job [on such a small budget]?” My greatest critic is Jim and he was pretty happy with the end result, which is very flattering.

Andrew Wight

Q. It’s been said that you were meticulous in your attention to detail while making the film. So, what are the things you’re most proud of in the finished version?
Andrew Wight: I think in terms of the minutia of it, we’ve got things right. I’ve had comments back from experienced cave divers, as well as a group of friends who would be the first to criticise me, that we’ve got the story right. Perhaps the most gratifying thing, though, is that I knew Wes Skiles, one of the great cave divers who unfortunately passed away last year, but was fortunate enough to be able to display the film to his family and friends and some of the best cave divers in world in Florida last year [before its release] and they were all thrilled with it. They felt that it really got to the heart of why we do what we do. I know there will be some normal people out there who don’t get it as much. But to see that this group of family and friends, who were grieving for the loss of someone so dear, felt that way was very gratifying. It meant a lot.

Q. So, finally, what is your own favourite memory of a cave dive? Which is the one that sticks with you the most?
Andrew Wight: Boy, I guess it would have to be the 1988 one in the Pannikin Plain Cave. I mean, we had dived to the very far reaches of the cave and we got through a boulder collapse. We were as far away from humanity at that point as you can possibly imagine… probably even further than outer space! At least in outer space, there’s a voice on the other end of the intercom. But down there, there’s no one to listen to you scream; out there it’s you and the person you are diving with. And in that moment, your life becomes very real and very tangible. You do feel that you are the sole master of your own destiny and I will never forget that moment. So, I guess I would have to say that one!

Sanctum is released on DVD & Blu-ray on Monday, June 13, 2011.

  Name:
  Email: [?]
  Comment on this article:
 
 
------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=back.gif Content-Type: image/gif; name=back.gif Content-Location: http://www.indielondon.co.uk/images/back.gif Content-Transfer-Encoding: Base64 R0lGODlh0AcKAJEAAABmmf///5mtwgAAACH5BAQUAP8ALAAAAADQBwoAAAL/lI+p y+0Po5y02ouz3rz7D4biSJbmAqTqygbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfM pvMJjUqNrOrqhM1qt9yu9wsOi8fksvmMTqvX7Lb7DbLKp/S6/Y7P6/f8vv8PGCg4 JGcFd4iYqLjI2Oj4CBkpOUlZaTlWWDW4ydnp+QkaKjpKWlqXyXKpusra6voKGys7 S1tra4K6YrrL2+v7CxwsPAyYq3KLnKy8zNzs/AwdLR1mnEJ8jZ2tvc3d7S1VDTA9 Tl5ufo6err7OPhH+DR8vP09fb/8X3q6/z9/v/w8woEAL7+4ZPIgwocKF8PINfAgx osSJFCtaNFOQocaNNRw7evwYxeHFkSRLmjyJMiW6jCBbunwJMyZDkSpr2ryJM6fO nWBYyvwJNKjQoaNo8jyKVGcBADs= ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=h_back.gif Content-Type: image/gif; name=h_back.gif Content-Location: http://www.indielondon.co.uk/images/h_back.gif Content-Transfer-Encoding: Base64 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 ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=goingout_backb.gif Content-Type: image/gif; name=goingout_backb.gif Content-Location: http://www.indielondon.co.uk/images/goingout_backb.gif Content-Transfer-Encoding: Base64 R0lGODlheAAXAKIAAP///+Dn7cfT3r3L2K6/zwAAAAAAAAAAACH5BAQUAP8ALAAA AAB4ABcAAANCSLrc/jDKSau9OOvNu/9gKI5kaZ5oqq5s675wLM90bd94ru987//A oHBILBqPyKRySRAwd4FnbgCQ3qhV62wQAHgTADs= ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=goingout_back.gif Content-Type: image/gif; name=goingout_back.gif Content-Location: http://www.indielondon.co.uk/images/goingout_back.gif Content-Transfer-Encoding: Base64 R0lGODlheAAbAKIAAI6muKO2xfj5+4+mvNTd5LHCzv///wAAACH5BAQUAP8ALAAA AAB4ABsAAANXCLrc/jDKSauVhZh9u/9gSAWCIZ5oqi6Bub5wDBFyba/Bre987//A oHBILBqPyKRyyWw6n9CodEqtWq/YrHbL7Xq/4LB4TC4XB+i0es1uu9/wuHxOrycA ADs= ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=stayingin_backb.gif Content-Type: image/gif; name=stayingin_backb.gif Content-Location: http://www.indielondon.co.uk/images/stayingin_backb.gif Content-Transfer-Encoding: Base64 R0lGODlhdwAXAJEAAP///+/y9uHo7tTd5yH5BAQUAP8ALAAAAAB3ABcAAAI+nI+p y+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8SisSY43gJK G6BJAzyhsIAUUAAAOw== ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=stayingin_back.gif Content-Type: image/gif; name=stayingin_back.gif Content-Location: http://www.indielondon.co.uk/images/stayingin_back.gif Content-Transfer-Encoding: Base64 R0lGODlheAAaAKIAAKG1xLLDz////77M1tzj6QAAAAAAAAAAACH5BAQUAP8ALAAA AAB4ABoAAANICLrc/jDKSauVg4h9u/9gSAWcaJ5oqpBq674RAc+0GtR4ru987//A oHBILBqPyKRyyWw6n9CodEqtWq/YrHbL7Xq/4LB4PEwAADs= ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=shopping_backb.gif Content-Type: image/gif; name=shopping_backb.gif Content-Location: http://www.indielondon.co.uk/images/shopping_backb.gif Content-Transfer-Encoding: Base64 R0lGODlheAAXAKIAALLMf8DWl////+Lsz9Tit/b577fPhwAAACH5BAQUAP8ALAAA AAB4ABcAAANGCLrc/jDKSau9OOvNu/9gKI5kaZ5oqq5s675wLM90bd94ru987//A oHBILBqPyKQloOwRmjtDAaobCKg3g/WKnQUIBYE4AQA7 ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=shopping_back.gif Content-Type: image/gif; name=shopping_back.gif Content-Location: http://www.indielondon.co.uk/images/shopping_back.gif Content-Transfer-Encoding: Base64 R0lGODlheAAbAKIAAGaZAKnGcP///4OsMOzy363Fa8XZn3CfECH5BAQUAP8ALAAA AAB4ABsAAANNCLrc/jDKSauNIxDBr/9gKE6H0Y1oqq6Kyb5wDB2EbN9sgO/8N/TA oHBILBqPyKRyyWw6n9CodEqtWq/YrHbL7Xq/4LB4TC6bz+g0OAEAOw== ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=2005.css Content-Type: text/css; charset=utf-8; name=2005.css Content-Location: http://www.indielondon.co.uk/style/2005.css Content-Transfer-Encoding: 8bit html { height:100%; margin-bottom:1px; } * {padding:0; margin:0;} p, blockquote, form, label, ul, ol, dl, fieldset, address {margin-bottom:1em;} body {margin:0; padding:0; text-align:center; color:#000; background:#fff url(/images/back.gif) repeat-y center top; font:normal 100%/105% Verdana, Arial, Helvetica, sans-serif;} strong { font-weight:bold; color:#000; } a img,:link img,:visited img {border:none;} a, a:link, a:active {font-weight:normal; text-decoration:underline; color:#00f;} a:visited {color:#006; text-decoration:underline;} a:hover {text-decoration:underline;} a.bravenet_link {color:#000!important; } #container {width:766px; margin:0 auto; text-align:left; font-size:0.8em; background:#fff; border:1px solid #069; border-width:0 1px;} #head {background:#003366 url(/images/h_back.gif) no-repeat center top; height:122px; position:relative; } #head h1 { font-size:0; } #head img {margin:17px 0 0 7px; padding-top:7px;} #head p {text-align:right; margin:0 5px 0 0; padding-top:.4em; background:#036;} #head a {color:#fff; font-weight:normal; padding:2px;} #head a:hover {color:#fff; } #head #searchlinks { float:right; margin-top:-100px; padding:2px; margin-right:5px; display:inline; background:#036; color:#fff;} #head #searchlinks form { display:inline; } #searchlinks input { font-size:11px; font-family:Verdana,Arial,Helvetica,sans-serif; } #head #banner-ad { position:absolute; left:285px; top:10px; } #left {float:left; width:125px;} /* Left-hand nav - Going Out Section */ #goingout { margin:0 0 10px 0; padding:0; list-style-type:none; width:120px; background:#aebfcf url(/images/goingout_backb.gif) no-repeat bottom right;} .goingouttitle {font-weight:bold; color:#000; padding:.3em 0 .3em 5px; font-size:1.2em; background:#8EA6B8 url(/images/goingout_back.gif) no-repeat 0 0;} #goingout a {display:block; color:#036; height:1.4em; padding:.2em 0; font-weight:bold; font-size:1em; text-decoration:none; padding-left:2px; border-top:1px solid #8FA6BC;} #goingout a:hover, #goingout a.active {color:#fff; background:#9FB4C4;} #film #nav-film a, #theatre #nav-theatre a, #music #nav-music a, #clubs #nav-clubs a, #events #nav-events a, #food #nav-food a, #travel #nav-travel a, #film #nav-film a:hover, #theatre #nav-theatre a:hover, #music #nav-music a:hover, #clubs #nav-clubs a:hover, #events #nav-events a:hover, #food #nav-food a:hover, #travel #nav-travel a:hover { color:#fff; background:#9FB4C4; } /* Left-hand nav - Staying In Section */ #stayingin, #stayingin_av {margin:0 0 10px 0; padding:0; list-style-type:none; width:120px; background:#d4dde7 url(/images/stayingin_backb.gif) no-repeat bottom right; } .stayingintitle {font-weight:bold; color:#000; padding:.3em 0 .3em 5px; font-size:1.2em; background:#a1b5c4 url(/images/stayingin_back.gif) no-repeat 0 0;} #stayingin a, #stayingin_av a {display:block; color:#036; height:1.4em; padding:.2em 0; font-weight:bold;font-size:1em; text-decoration:none; padding-left:2px; border-top:1px solid #a1b5c4;} #stayingin a:hover, #stayingin a.active, #stayingin_av a:hover, #stayingin_av a.active {color:#fff; background:#BCCAD7;} #avroom_dvd #nav-avroom a, #avroom_film #nav-avroom a, #avroom_music #nav-avroom a, #books #nav-books a, #dvd #nav-dvd a, #games #nav-games a, #tv #nav-tv a, #comps #nav-comps a, #gallery-body #nav-gallery a, #avroom_dvd #nav-avroom a:hover, #avroom_film #nav-avroom a:hover, #avroom_music #nav-avroom a:hover, #books #nav-books a:hover, #dvd #nav-dvd a:hover, #games #nav-games a:hover, #tv #nav-tv a:hover, #comps #nav-comps a:hover, #gallery-body #nav-gallery a:hover { color:#fff; background:#BCCAD7; padding-left:2px;} /* Left-hand nav - Shopping Section */ ul#shop_nav { margin:0 0 10px 0; padding:0; list-style-type:none; width:120px; background:#B2CC7F url(/images/shopping_backb.gif) no-repeat bottom right;} .shoppingtitle {font-weight:bold; color:#000; padding:.3em 0 .3em 5px; font-size:1.2em; background:#8CB23F url(/images/shopping_back.gif) no-repeat 0 0;} ul#shop_nav a {display:block; color:#090; height:1.4em; padding:.2em 0; font-weight:bold; font-size:1em; text-decoration:none; padding-left:2px; border-top:1px solid #8CB23F;} ul#shop_nav a:hover, #shop_nav a.active {color:#fff; background:#A3C266;} #shopping #nav-shop-articles a, #shopping #nav-shop-articles a:hover, #shop #nav-shop a, #shop #nav-shop a:hover { color:#fff; background:#A3C266; padding-left:2px;} /* comp sub links */ /* follows the format - #body-id #ul-id #link-id */ #comp_one #comp_links #nav-comps-one a, #comp_two #comp_links #nav-comps-two a, #comp_three #comp_links #nav-comps-three a {color:#fff; text-decoration:none; font-weight:bold; font-size:1em; padding:0 0 5px 17px; } #comps #comp_links #nav-comps-one a, #comps #comp_links #nav-comps-two a, #comps #comp_links #nav-comps-three a, #comp_one #comp_links #nav-comps-two a, #comp_one #comp_links #nav-comps-three a, #comp_two #comp_links #nav-comps-one a, #comp_two #comp_links #nav-comps-three a, #comp_three #comp_links #nav-comps-one a, #comp_three #comp_links #nav-comps-two a {color:#036; text-decoration:none; font-weight:bold; font-size:1em; padding:0 0 5px 17px; background:transparent; } /* av room sub links */ /* follows the format - #body-id #ul-id #link-id */ #avroom_film #av_links #nav-avroom-film a, #avroom_music #av_links #nav-avroom-music a, #avroom_dvd #av_links #nav-avroom-dvd a {color:#fff; text-decoration:none; font-weight:bold; font-size:1em; padding:0 0 5px 17px; } #avroom_film #av_links #nav-avroom-music a, #avroom_film #av_links #nav-avroom-dvd a, #avroom_music #av_links #nav-avroom-film a, #avroom_music #av_links #nav-avroom-dvd a, #avroom_dvd #av_links #nav-avroom-film a, #avroom_dvd #av_links #nav-avroom-music a {color:#036; text-decoration:none; font-weight:bold; font-size:1em; padding:0 0 5px 17px; background:transparent; } h4.h4-underline { border-bottom:1px solid #036; padding:0 0 5px 0;} h4.h4-underline a { font-weight:bold; color:#036;} #av_links, #comp_links {margin:0; padding:0; list-style-type:none; } #content {float:right; width:635px;} #content h1 {font-size:1.4em; padding-bottom:15px;} #content p {color:#000; font-size:0.9em;} p.left10 {font-size:0.8em !important; padding-left:0.8em;} div#main div#article-box {float:right; border:1px solid #aaa; padding:5px; margin:5px;} div#main div#article-box p.author, div#main div#article-box p.reviewer {padding:0; margin:0;} div#main div#article-box p.rating {padding:0; margin:0;} #content ol, #content ul {padding-left:32px; color:#000; line-height:1em; font-weight:bold;} #content ul.bookmarks { padding:10px; border:1px solid #aaa;} #content ul.bookmarks li { padding:0 15px 0 0;} #content ul.linkul {list-style-type:none; padding:0; padding-left:0.2em; margin:0; line-height:1.2em;} #content li.linkli {background-image:url(/images/arrow_b.gif); background-repeat:no-repeat; background-position:0 .7em; padding:5px; padding-left:.7em; border-bottom:1px dashed #7E99AB;} #content h2, #main-2 h2, #content h3 {color:#036; font-size:1.4em; border-bottom:1px solid #036; padding-bottom:4px; font-weight:normal; margin-bottom:5px;} #main-2 h2 { width:98%;} #content h3 {font-size:1.2em; border:0; font-weight:bold;} #content h3#westend a, #content h3#offwest a {font-size:.8em;} #content h3.archive-year { margin:20px 0 5px 0;} #content h4.archive-month {margin:10px 0 0 0;} #content table tr th p { font-size:1.1em; font-weight:bold; color:#036; padding:5px; margin:0; } #fotw {margin-bottom:10px;} #fotw p {padding:0; margin:0;} #main {float:left; width:482px; border-left:1px dashed #036; border-right:1px dashed #036; padding:0 5px; overflow:visible;} #main-2 { float:none; width:765px; padding:0 5px; } #main-shopping { float:left; width:620px; border:none;} iframe#astore-iframe { margin-left:-5px;} #main th, #main-2 th {background-color:#F1F4F7; font-weight:bold; padding-left:5px; border:1px solid #dce3ea; border-width:0 0 1px 0;} #main tr, #main-2 tr {vertical-align:top; padding-left:5px;} .filmbox { background:#F1F4F7; border:1px solid #dce3ea; } #main .comp img, #main-2 .comp img { padding:0 .5em 0 0; } #main div.googlehoriz, #main-2 div.googlehoriz { margin:20px 0 20px 10px; } #main ul.normal, #main-2 ul.normal { font-weight:normal; line-height:1.2;} hr { color:#036; background-color:#036; height:1px; margin:8px 0; border:1px solid #036; border-width:0 0 1px 0;} .columnized1 {float:left;width:230px; padding:0 5px; border-right:1px dotted #069;} .columnized2 {float:right; width:230px; padding:0 0 0 5px;} #main-shopping div.promo-box { width:200px; float:left; margin:0 5px 10px 0; padding:0 0 10px 0;} #main-shopping div#buttons { clear:left; width:100%; height:60px; text-align:center; padding:10px 0 0 0; margin:10px 0 0 0; border-top:1px solid #aebfcf;} #main-shopping div.shop-section { padding:5px 0; margin:10px 0; border-top:1px solid #aebfcf; clear:both;} #main-shopping div#links-300 { float:left; width:300px; margin:0 0 20px 0;} #main-shopping div#links-180 { float:left; width:420px;} #main-shopping div#links-180 ul { line-height:1.5;} #main-shopping div.shop-section div#google-ad-300x250 { float:right; display:inline; width:300px; height:250px; margin:0 0 0 10px;} #main-shopping div.shop-section div#google-ad-180x150 { float:right; display:inline; width:180px; height:150px; margin:0 0 0 10px;} div#contentunitstyle { margin:0 0 0 10px;} div.spacer {clear:both;} #comment {margin-left:10px; color:#ECE2DC; font-size:1em;} #right {float:right; width:135px; padding-left:5px;} #right h3 {color:#036; font-size:1em; background:#DCE3EA; margin-bottom:10px; padding:3px 0 3px 5px;} #right ul {padding-left:16px; color:#036;} #right ul li {line-height:1.2em; padding:2px 0;} #right ol {padding-left:32px; margin-left:0; color:#036;} #right a img { padding:0 0 10px 0;} #foot {clear:both; text-align:center; color:#42636C;} #foot p, #foot p.notoppad, #foot p.nobotpad {margin-left:10px; font-size:11px; padding:5px 0 0 0;} #foot a:link, #foot a:visited, #foot a:hover, #foot a:active {text-decoration:none; color:#036;} #foot a:hover {text-decoration:underline;} fieldset {padding-bottom:10px; margin:0; border:solid 1px #c5edf8; width:99%; background-color:#e9f8fc; } fieldset legend {padding:3px; background-color:#7FD6EF; margin-bottom:20px;} fieldset div {clear:both; padding:0;} fieldset div label {width:30%; padding-left:10px; float:left; text-align:left; cursor:pointer; font-weight:bold;} fieldset.comp {margin-top:10px;} fieldset.comp p {font-weight:normal; padding:0 5px;} fieldset.comp div { border:1px solid #E9F8FC; } fieldset.comp div label {width:30%; padding-left:10px; float:left; text-align:left; cursor:pointer; font-weight:normal;} fieldset div input, fieldset div textarea {float:left;} .gbutton {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; font-weight:bold; color:#FFFFFF; background-color:#6C7E92; border:1px #FFFFFF solid; margin:0px 0px -5px 0px;} .gfield {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; color:#000; background-color:#6C7E92; border:1px #FFFFFF solid; height:14px; width:175px; margin:0px 0px -4px 10px;} .t75 {padding-left:5px; font-size:0.8em; color:#efefef !important; text-decoration:none;} /* hide accessibility headings */ #left h2.hidden, #main h2.hidden, #main-2 h2.hidden, #right h2.hidden, #foot h2.hidden {display:none;} /* Textpattern stuff */ #txpCommentInputForm {clear:right; color:#000; width:100%; border-top:1px dashed #aaa; padding-top:1em;} #main ol.comments, #main-2 ol.comments {clear:both; } #main ol.comments li, #main-2 ol.comments li { border:1px dashed #999; border-width:1px 0 0 0; font-weight:normal; color:#999; padding-top:1em; margin-top:1em;} .image {float:right;} #content td.ticketswitch ul {margin:0; padding:0;} li.ticketswitch-com { list-style:none;} li.ticketswitch-com a { line-height:1.4;} li.ticketswitch-com sub { display:block; margin:5px 0; color:#666;} /* Gallerystuff */ #gallery {float:left; border-left:1px dashed #036; padding:0 5px;} /*replaces main */ div.gallerybox { float:left; background:#D4DDE7; margin:3px; padding:5px; width:120px; height:150px; padding-bottom:0; } div.gallerybox p { text-align:left; margin:0; padding:0; padding:2px;} div.gallerybox p a, div.gallerybox p a.preview { text-decoration:none; font-weight:normal; margin:0; padding:0; font-size:.8em; } div.gallerybox p a.popup { background:transparent url(/images/magnifyglass.gif) no-repeat 0 3px; padding-left:10px; } #gallery div#gallery-centre { text-align:center; width:490px; margin:0 auto; } #gallery div#gallery-centre h3 { text-align:left; margin:0; padding:1em 0 .5em 0;} /* TxP Slideshow Gallery */ img#slideshow { border:1px solid #036; padding:5px; margin:10px 0;} span.caption-left { float:left; margin:0; } span.count-right { float:right; text-align:right; margin:0; } div#image-section {position:relative; margin:0 auto; } /* Competition admin stuff */ form#comp-admin fieldset {padding:5px; margin:1em 0; border:solid 1px #333; background-color:#fff; } form#comp-admin fieldset legend {padding:.5em; background-color:#fff; color:#333; border:none; font-weight:bold; font-size:1.2em;} form#comp-admin fieldset p {padding:0; margin:0; } form#comp-admin fieldset span {font-size:.8em;} form#comp-admin fieldset div {clear:both; padding:.5em 0; } form#comp-admin fieldset div label {width:180px; padding-left:10px; float:left; text-align:left; cursor:pointer; font-weight:normal; color:#330; line-height:1.2; font-size:1.2em;} form#comp-admin fieldset div input, fieldset div textarea {float:left; font-family:"Trebuchet MS", Verdana, Geneva, Arial, Helvetica, sans-serif;} form#comp-admin fieldset div select {font-family:"Trebuchet MS", Verdana, Geneva, Arial, Helvetica, sans-serif;} form#comp-admin fieldset div.radio input { float:none; margin-right:10px; } /* Recent Gallery links */ #content ul.recent_articles { margin:0; padding:0; line-height:1.3;} #content ul.recent_articles li { list-style-type:none; display:inline; margin:0; padding:0; } #content ul.recent_articles li a { margin:0; padding:0; padding:0 0 0 12px; background:#fff url("/images/arrow_b.gif") no-repeat 2px 5px; } ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=logo_il4.gif Content-Type: image/gif; name=logo_il4.gif Content-Location: http://www.indielondon.co.uk/images/logo_il4.gif Content-Transfer-Encoding: Base64 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 gzRYgzZoghOAAf43BEEAADs= ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=29746.jpg Content-Type: image/jpeg; name=29746.jpg Content-Location: http://www.indielondon.co.uk/images/29746.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEBMQExAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQH/wAARCADpAKADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6 Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9 GD498YKN3/CUa4Pl5J1W6XaBkkkl9oA9+KYvj/xeQNvinW2BweNYuSDg47S9MjHo CMHkV+fviT9ur9hfxR4c1/wze/tXfB6Gx8R6JquhXs9l4206C8htNWsZ7C5ktZtu IrhIbiRoZOTHKquAcDPzdB8TP+CdVvrema9H+2p4aj/sjxPH4osrGH4o6da2bX0X iDVfEa2V5JFCLm+0Y3Wr3FpJpVxM9vLYw28MoZ0aRvX7Ws7+dtNNfx8j5RKWl+eN nZe62npt66dn33vf9kz8QfF3APivXPTH9s3PUEggDzOSMc45HIPel/4WF4u5B8Va 3kfezq90SvBPP7zjjpnA6dq/Hr/hcH7AEuqLq6ftreA3mgvLy+Ns3i3wvdWIF3rN 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 RlJKcHyrXWPRq/6Gav8AE7xVIWEfinWCSWxs1a44Azkna38PU56flXiHxg/aSuvg t8OfEvxO8WeJ/E8vh/wvHYS6hHp2pTz30ralqlhpFvFbwvNGskpudRhbaXB8ve3p X503nj/9hXwZ4p1PVtW/a28NaTqd3out6RJp2oeM9EsrW3t/Gfg+PRJ75bOOwiBu 5LGePWdOmkDxQzzKUQ2zKgxfFPxW/wCCcvi/4QL8FPEf7WfgW+8GXniWz8V606/E mystW8RzWUks1vp97qVl9nntNMW9XT7ryNKksnMmk2kJfyJLuO44pRnFuMouEknd STTTvbVNJ+TulqezRrUKsY1KdaNWlPlaqU5Jxmmk3yyi2rWtZptJNPsfXjf8FC9L j8Sar4Wa6+IK6ppfxO8MfCJt+p2qW0/jTxh4m+IXhzw/ZpcnUgkVreQ/D+bX3vJ/ Lht9E8QaBcykNcypHzUf/BSmGHw9e6tqumfEzRtbtPhw/wATY/C954m0B7qfQm+K 4+EFpbSaxDrraHZX934jFzf7b2+ghtNCtZtRupY4yqn4f1Bv+CaWqKLm9/bE8NPf y+KfD/j5tXh+JGi2V1P498KeBfCngTw14sl+xWcEFxd6VaeF7jXF065jm0e71zxL r9ze2E8MtpBbUdSj/wCCY2r3Goajqf7YnhW8udVsLfw9eNP8QfD8ljP4Ph1hPE3/ AAhr6ObA6PJpVx4g+0avPdS2D6u8t7c2x1AWTLbDO1TeyS0tfTR2Wr8t7362N4yw 7s+aT+FaO+1k1a+nbytdH7PfDb48698TvAfhX4gaNrviqy0vxXpMeqWdpqGqyG7t kaae3khmazurmzm2XFvKsd1Z3NxZ3cIiu7SeW2nikftj4/8AGHfxP4gPQgf2reHn AzxuOPfOM8elfnT4F/bJ/YZ+GHgfwr4Gsf2r/hTdaR4X0uPQtHutV8YaP9tfTdPk khsLWY2lvBAw02z8jTYnSFN0FpE0pecySN1H/Dwn9h4DP/DVfwXwTjnxhp+MjqAS vOOAcdce3N6pa72V9La9fT/Iy5XNN01KcW3ZrVb3Wt3qtnre682z+CP4f+A/F3xR 8deDPhr4B0O/8TeOPiB4p0LwX4P8PaZCZ9R13xP4n1O10bQ9Is4lGWuNQ1K8trWL OFVpQzFVViP7pf2Wv+DQH4WD4baLq37Yv7S3jRviZqtnbT6z4T+DFroGn+DPCOoX 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 aTqRuo9M8R+PPCL6PBLN5+pS3fiDwXb6PFa21tdST6rqmkWrCFbhpV/I7w74t07S PEninWrGwuguqeHfF2nQ+ReyWNzZya5O8cV3bXUPzApp87QXEJCrPA91AQElwP0k +E9z4D+DX7NPi3xxe6yX8ceJ9Gk1JtOaFrqWzbUYfF1p4UbSYFuoI7G6hvfDVpJL qphluo21KaKUSaU0lrc/klc6hdajfXmoXkvmXd/cz3F5MqRQCWW5kMsv7uFI4Yw7 ux2RJHGoO1UVMLX+IfFOO5XgsNGUJTw0a9WVrTtLETjUhzO7tJRsnFrRq1t2f6B8 FYSnjc04szGKqKlWr5flim41KSmstw8oVYqLSVSPtKk5qsmuaMoq0oxjajI2SBtC MF2MOOSCWz169Aeh+X3rf0NbRodZW6jMgTSXmgMaF2S5SWMwscFTGN7KjygkIjFm G0syxaxpj2NxZwuoUXFjaXEborbJFmjJaQFwpZw4Kuq5+ZSFLGnaOsv9pRWtu8qf bLea3uQdqoivDKW80PhGhjxG8iuCGG4DJK5+L5+ZJ97P8lfW/a+vXzP0urOFXCN0 52i4qopJtLlpTjOVpLraLXrozR+xzWmnWeoOQ8dzuZDkbBIzyxSwN/fkQNA5Chgi kkkbSB6r4e8EaxqPhq3l0mCC+1M37QSQSSQpIIr6RIxLKkhV5UWOFZWzgRvsx84w fN7i5nbQtD03zhJFBqOos6YcMkqSOCJFI27TE+VdTkrgFAVyfc/hzqd3c2Vwlrcx R3atLcWX2Vf+Jk1zf2s2kz2KXwUSWyCCWLUliQOzS2gdCssPHq5VRpVq/JW5mpUn FcripJ2i3JNpptXbSs22ra3ufK53icXQwP1ilKnGdLFubc4znCdOnUlCFOUY2koy clztNWu5p2i7/KaJu+UkhVPzMR0LYAJxzgkE98Co8YOOw6eh9+2AfX9OBVmNl8uU Fd52qwboI2BKgtyM/eJwSc7VAAGCK/cjJA6A9Dx0xg9+ccjqO9eV3t+Hy1+6x9qr 80uysl56J7eV2tfloX9LtIr++tLSaVoI57qCKSYLuEUDSATuUJXcURi6gMOFYk7R Xc3l7YpoV7ELhPMupYTZW+xS9tZRNOlvxsVjcLtUGVT5Kx3M5w0jsG5rw69vZzC+ ukmC5MdvJEFzHMUZmfYyuJAqBs4HBYE7gCpyb27e8uBLIAWxgZG3K9gV4wCeQFAA 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 iXwvdjxh4U+C/wAH/Del+HNQm+2pbeJfD2s+E/Cw1rRr69eOUWmo6DLNdR6deCKy E2/Tvs63K3DXq/EP7Ufiq41v9lD9hvStOu4NQhsm/aC8K6xbyTRXd9ZeJdI8aaD9 g0iZDIJ9N02Hwrq+gazbQtCmmyf2ldz27tqM2rSH6ci1awv/AIN+LdK8R6eLbWNf +EPw38N+CbJtXeC617x54yey0qy8R6natb29naWOk6P4TPhfUHScWi6hLo6amjvq lvG/+FWZ0KcsdxRlcuSMcLXqSjOUJO+I/eNpJ3SS5IKPMldxk7NSSP70zrLsRhM2 4O4uTqvGrMM0wcqNCpCK/s2eZ4ehGo4xjTn7WWGliVOUOfkhibtqVL2q/DP40+GL 3w7r+g3c13PqVv4i8GeFfEcVzPcxXJT+2LGST7K0sRITyHgnjijwH8mJH+cMrv5h pumy3W+UgCJ0kVWbJLuEdgq4BPRGLsQAqIzHHFdv8Sr+F28PeG0tpIdQ8JWN3oGq S7rkRahLZahcLZX6W88koiMtiyFHt3FtLbNbvEisZXlt6doTx+FbbVbgC3D+bJZy S5AZ8ushZDy0QijyG2uvmS/7RA/E6lD2uLrKmm4xSqT1T5dIuUXKzWkm43aWq1Z/ XeFxUsHlGAVZxjUqtYanJR5XUhzTVKpGCbu6lNRqWjrytu2jtz1rjTRsbLFZEWa1 kUL5sQZJMOyngrJh0YZKsEyDVbVoIUmJsyWtJleSJnIZkDM/7piq4UqTtJIYkANu 5zVzUZophZyRrFGptYY5wikebIJJg0z/ADEiTGyN1TapCghTyxmsmtbi3ZZVJddr EqwUhUXacjKwtwMHcDgnliC2YmuZeyTVk48r23tpono7+l9VvZ7KcoWxLU23dTgr O9+V3cdrqy5Xdtx3027m0givfEulxwvFHFd2NtIZC4wsaonlWjSFc5MlqtuznYhe V13IhyOV8S3zuNdR4wsk94Y50DhgirLJI/3l37RcsERzgP5Eag44r0v4faGviLxN fXbwS/ZrLSr+ONbaIu4khDRCSFGRkkEiPNMgEfElu6jyyEasPxH4Vt5rXxXeWltO bpL+WW0UiJwlghM9yssCuoaW0CeY5iWRIRKhIypK+lWw1eWElXpxup162tvijCEU 3FNPTs11dr7nzeHzDDUczWEqzbnRw2A5k7e5OvWbipSTS0VnJLom7Ns8Ft0WadEZ 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 rNR1a1bZ/9k= ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=29754.jpg Content-Type: image/jpeg; name=29754.jpg Content-Location: http://www.indielondon.co.uk/images/29754.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEASABIAAD/4REqRXhpZgAATU0AKgAAAAgABQESAAMAAAAB AAEAAAExAAIAAAAbAAAIVgEyAAIAAAAUAAAIcodpAAQAAAABAAAIhuocAAcAAAgM AAAASgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAEFkb2JlIFBob3Rvc2hvcCBDUyBXaW5kb3dzAAAyMDExOjAxOjMxIDAwOjU3 OjQ4AAAIkAMAAgAAABQAABD4kAQAAgAAABQAABEMkpEAAgAAAAMwMAAAkpIAAgAA AAMwMAAAoAEAAwAAAAEAAQAAoAIABAAAAAEAAAHUoAMABAAAAAEAAAD66hwABwAA CAwAAAjsAAAAABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAMjAxMTowMTozMSAwMDo1Nzo0OAAyMDExOjAxOjMxIDAwOjU3OjQ4AAAA /+IMWElDQ19QUk9GSUxFAAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJ AAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAEAAPbWAAEAAAAA 0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAA AgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAA AlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAA A/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAA BDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3 bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYt Mi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQAB AAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZ WiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAA ABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3 dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xv dXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0 IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRl c2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2 Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4g SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAAT pP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521l YXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1 cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZ AF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQ ANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFg AWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAId AiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAML AxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQt BDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWG BZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZ BysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjn CPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3Arz CwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1A DVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/P D+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKj EsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9 FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkg GUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzM HPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDE IPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJ JTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymd KdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6C Lrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4 M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlC OX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8h P2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVV RZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkvi TCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLH UxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoH WlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2Gi YfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2ma afFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHw cktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6Rnql ewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6 hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0x jZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cK l3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFH obaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavp rFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbw t2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48Jf wtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42 zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp2 2vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf 56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q0 9ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+EJ2Wh0 dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78n IGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1s bnM6eD0iYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDov L3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNj cmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6ZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEt ZDMzZDc1MTgyZjFiIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFw LzEuMC8iPjx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENTIFdpbmRv d3M8L3htcDpDcmVhdG9yVG9vbD48eG1wOkNyZWF0ZURhdGU+MjAxMS0wMS0zMVQw MDo1Nzo0ODwveG1wOkNyZWF0ZURhdGU+PC9yZGY6RGVzY3JpcHRpb24+PC9yZGY6 UkRGPjwveDp4bXBtZXRhPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8P3hwYWNrZXQgZW5kPSd3Jz8+/9sAQwABAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQECAgEBAgEBAQICAgICAgICAgECAgICAgICAgIC/9sAQwEB AQEBAQEBAQEBAgEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC AgICAgICAgICAgICAgIC/8AAEQgAoADuAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEB AAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUS ITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5 OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq 8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALUR AAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1Lw FWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdo aWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLD xMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A +A9A+IUt5pWkaat9Gwjt4vNgST5o2UAksP4cEnOe5/CvQ9JbUtSuFupjG2kQTKXu bhv3UKY/eBQ5wxIzjHOTXwcPAHjH4T6FqPiXxNqqTalfr50en+ZI/wBnguRhVjWP +MOAc+gNYEf7Tuu6l4GbwPpNtdNrc08kC3MMRln3piONsNGAg3N1I/hr+YamU80X OhZ04P36l7Rjqr3vrr6H9X4XOcHRhy4nmhUknyp2125dn/wxS/bck0K68feHX8NM l1cW4jjne3xJtDTbiw8vlTgd/Svuj9nKHUv+ELtdbdmltLS1VLgSFsqsS5UMpHA5 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 A8kgnNc2YZnVSwyo1JQpPXlWinf0+K3f8TtwHD+HnilUryU3SbUVvbZarW/fXax9 LW3gjwfo1vNfWNhZwQWNvJIS0UaqnlxsCudvTByPpX5C+L9e0eX4161rGlyxx/Yr gWs9xbKArSfaHKo3OSoHp9K/U74o+INI0f4U6xJLrK21/PYuinzVjmO8AKuQ2SNx H1r8M/D2jalfa7qV8t1NNJNqdxNJNl0SXbM7pkk/vPlwOe/5UsJU9lh61eUrVNop 66O2qbu2vvHmbdDFYXCqClCGvN8Nul7aJb72/A+lvE2t/wBuXeyO4Vl2IJMKwG4q o3ct16/n6VWuTpml6F9n02Nf7RkjLB4hteSUr0JYcc57+1czbx22nmR7uchyNpDE AEgdTk9Qc1LpcyTTyShzLD5hKNIwYbBwNhB5GBU0cQud8q5UrOT7t2vq9Ndfn2OL EYSdN/WIz54q9tNrW3XXXuaXhXxLqqOumai0rW/mEKJC23EjhsbMntj0r9EvhLp9 mNLtZPKSMzCPBMagEMFKkE9uhH1/L8+LXTRd6vaNbhVKyK3AI3DcDyfTH5V91+Ef EFpaWdlYRyCKWFIt5XOVZBGWyAOuB/ntniaiqyTSs1sy8tmvrNOpV96bV1pprbft dXPqnRvHWo6PerpVugdHMiZKllJSMMp5+6Mn9K9Y0n4oW1h4d1nVtSka2udLti1t FDmP7RfSyC3t4i2Rt3zyICScAEk5FfMNlqFrqCz6jZ3imXT4JZHcOAXbBBjA65I7 +9eVXXi+41zQHtpb97JL/X3F0vk28yRaD4ZvLO+eeAzXQV9TuLyUW7YQFAgC724q 8NVr161PCxla61VlqGcujh8JPE1cLOLk3Zpxafrq2l9z10Pgz9qK9l+KPxX1zX/H 7XU/g7w/4i1XT7O30S7+wX2pvZRPFqdws32aXyoReS2cSvL5au0TqrfeeP8ALLxf eeNtf8Tf8I54cSbV49R1COHSPC00iXhgsbGWKK0Df2eyxWRhtYmUtCQA8mOQtfst +1F4Es/iF/Y3hfwfbW82oPdxanq95bxX8flW8tsLq4fWJUkMSWdpEwA8gIpCrGvy kMd/9jH9jq+bWb/xjceH4HuNTuBpmmapfW9uVtLWGJX3wlcmGMIxJAZixYBiK/Qa ea4bJ8I63L+8pxSUe7e7Sd7dOh+fZblVbN8Xyxmrzlfptpo7f8P+Z8WfDn9k/wCJ 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 zCPMnf8A5exiul+19Wf/2Q== ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=29755.jpg Content-Type: image/jpeg; name=29755.jpg Content-Location: http://www.indielondon.co.uk/images/29755.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8L CwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUF BQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e Hh4eHh4eHh4eHh4eHh7/wAARCACrAKADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6 Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwC3 PH5oIP3qy7q0Sa3aKZe52MOq56j6GrU+oqsBkmkjjCLl3Y4GAOSTXk/xD+JWLeSz 8OEyEnY96o+VT3Cep9/yz1H53gsJUxFS0Eds5pHL+PvCV7HqN1f6dHJcwSSsXA+Y qc8/UV0f7L2gyX3xBNxNE4S2iJOV6H8fYGszw1c6na6Bb3NreMlxvZZopxvRu4OO oOD2r279n2G81CLVNWu7e3iZdsR8rIDA85B/P/Jr9CUJU6aT18zljK0mn0NnxN4e 0PR7K68QRWccFwkTAvHEqlxjkFgoLe5Jye/Xn50s7aW7upbkjDSOXP4mvo/43XX2 TwLKqZ824KpnPXPsOOntXhUMYtrbapG4jFc827cq6nRhkruT6HP6g6mfyZGQKp+Y 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 7VXn5nY+2P0H+JqJvQ0if//Z ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=delicious.png Content-Type: image/png; name=delicious.png Content-Location: http://www.indielondon.co.uk/images/social/delicious.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK 6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAMUExURQAA AP///93d3QAA/+4iTdsAAAAaSURBVHjaYmCEAmYoYBggARhggoIBEgAIMADrEAGB e3e9DgAAAABJRU5ErkJggg== ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=digg.png Content-Type: image/png; name=digg.png Content-Location: http://www.indielondon.co.uk/images/social/digg.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAYAAAAmL5yKAAAABGdBTUEAAK/INwWK 6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEZSURBVHja jFM9qoYwEIwf9l7FS1hYW3gD76SdnZ7BAwheQbAQLGwEBX9R932bx4aNkccbCHHX mXE3Gy0AEH8hz3ODMI6jiKLIwmebkkmSKCK9JIRhqBl8uerZJvFXJBPHcVCsmSzL IrZtk4vDforXdRW+70sTx3EUkcT7vmutfYhA4mmaxDzPMhcEgWaAYqrAdV15FuoM uJhI931LEu/5CWXAxdd1yRzunucJXuUTFo6RT4BA/eMEhmEQ53nKhaa4F0XxS0QD WnEcA4+zLMMY+r6HruugbVtomgbqugbifsQ/wL+MO7WoTYHaeGuHxFVVGQbGRWKx 9ayAzAwDBM4YTxnJbxVwAxyvYZCmqXj7aZ53oCxLLf4RYAAwSxt0Re9DqAAAAABJ RU5ErkJggg== ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=reddit.png Content-Type: image/png; name=reddit.png Content-Location: http://www.indielondon.co.uk/images/social/reddit.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAIAAADZrBkAAAAABGdBTUEAAK/INwWK 6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKWSURBVHja dFJLSGJhFP7v1U00Cmo+BpxhZAQ3wyiKim1qjFnoLFrMxhbSrrAWbcLGnYXgzGoW gemyqNBB2kSrCCcwiCAFLRUX+QCLHmQPMjT1zndHx3FiPPz83POfc+453/k+imEY 0sNKpdLy8rJCoTAajUdHR+vr60ql0ul08vl8mvQ25N3f3z88PAQCAa/X6/P5aJre 2dlBiNur5unpCd1cLpdUKoU7NzcXCoWKxaLVamXDTA9LJpOzs7Mdt1wuY+CDg4OW S3Vjq9Vq0Wg0lUrd3Nxks9m7uzuDwSAWi/V6vUaj6Z6Fury8XFxcvL295fF4uPv6 +pCkUqkkEgnChULh+Lc1Gg2RSHR2dobQ9PQ05fF4ZDJZJpM5PT2dn19QKt/+F+ru 7q7b7Z6amjo5OZHL5ZzBwcFKpVKtVpeWlkQiIfkZJD++E8U7whOy6cdREvhChOI3 hiGLxYKVYiiKosj29rZarc7n8yzSWpWZVDMKwoS+tlex8Jl5RZhv9pa3uroKDjE5 Z2Vl5fDw0G63s/+mafJCQF4LyKdJwhOwLwIpEXLJRzt5qYCHofr7+9GW5Q1YUanT 6Qi6f7Cxp2Pvh9jzx5A2MDDQ5m1vb89ms11fX+P78fHR7/fv7++fn59jb5ubm2tr a60JQQzSLi4u8M12w1bS6bTD4ZiZmTGZTFqtdmtrCxzW63XIb2xsDDnBYDAcDkM0 oJHlrUN3LBbDoqBAyAeS5XA4zWYTdCUSiY2NDfA+MTGB1beS/2oSTaBDgMYdiUSg WtSAffB+dXWFvXdq/ikDBrQaHh4eHx/vJho9ASGXy0H7IyMjrUe6EwP9o6OjwPNM HwCJnmazOR6Pdx7bZZiHy+UijPpnZS0NQYDdf/wlwAArwYbfuDX2VQAAAABJRU5E rkJggg== ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=facebook.png Content-Type: image/png; name=facebook.png Content-Location: http://www.indielondon.co.uk/images/social/facebook.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJ1BMVEUxAABFcLWP qdL///9Eb7SOqNKBn9GCoNKCn9GetdmdtdhFcLRzksnrBbt6AAAAAXRSTlMAQObY ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfXCBcJ KCBXsxc9AAAAZklEQVQI12NggAPVIFUlpVAGBiZBIBARDGBgEhEU8TE2ATFERISN TRRAUo7Cho4BYDXC1hA1wsbGhgoMrIJQBljKRATEcAQqFoSKgBicFW3pzRZlCxg4 y9PSk83LJjAwKIGAKsIRAD3nEWaK1rNwAAAAAElFTkSuQmCC ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=stumbleupon.png Content-Type: image/png; name=stumbleupon.png Content-Location: http://www.indielondon.co.uk/images/social/stumbleupon.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAABGdBTUEAANbY1E9Y MgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGAUExURSvD NQNlqvf39+np6QJttABUmwG8AgJLkfz8/BN3q2SDngFrq5GRkQG1AYmJiSHKMaLN 5wDRAAHDAez7/cbGxgpKivz+/q6urgvEDKmpqQraCur978PDw4aGhvr+/vb9/uv9 8ABcogBaonFxcQCsAABuuAFZpQBSlvLy8vv7+/n5+VhwiN/f39bW1tD20QDPAPr6 +vj4+M/10MzMzPHx8cT4zPn++yDaJA+2GBPBIyjsKM/73BeLwwFzuwLUAhq6J/j9 /vj+/lOs12bccxZTh3rbejzKSiB+sTjfPYLdjJja7gPJCBnrGUPJQ2ybuS+VxCXG MX/Q7ePj44OzyaHS7BSBtwVdnwhZlr/p8zTyOUfeR35+foTrhApuswvfDFhtgiFU gXXCdXzOfHbhhArKDOXl5QXUBfX++Ors7BS1Iq/j9he7Jxq+KR/GLm+32g7fDhZJ ft/x5fr9/U6bwr/0ygBepZSUlA2HxKysrFmx2RPoE+P3/Z25yAh3sv7+/v///91c yzwAAAEZSURBVHjaYqjHAAxgso5Di4mJyVCzDiqkWV+nF+NRFRflGmQCEgSpqjOK 9MmXshMUTDFm1qoDCdUZWUmlCQoK6uuzFcowGwCF6vTMhSxz+fn5vYXYFGpkmIFC HElsJY7CwsJi1ry80gJcxkAhA1+GOqdYRsbiOnsVaYGECqCQoYRFenVWpbp7HQNQ SL0MKMQkoRKQbCrHCRTilQ5h5QMJJeZkZzqLcdbKe7qZ5bnIAoW0MsTExBy81NQC 5YsiWLR5gEKaqf6hodysjKXc5TaKosqSIHeZBNuqggEjK7s2nwjI9Vo6fmGsSoqK Sqyi2tHiOmAPaeiKc4WzsxfEK/OJ62qAvc2hoSMiySMryyMpoqPBAQ0vFAAQYAA+ Zll9nlHPSwAAAABJRU5ErkJggg== ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=b1.gif Content-Type: image/gif; name=b1.gif Content-Location: http://b1.perfb.com/b1.php?ID=1537&PURL=lasenzauk.at/IndieLondon Content-Transfer-Encoding: Base64 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 CAA7 ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=b1.gif Content-Type: image/gif; name=b1.gif Content-Location: http://b1.perfb.com/b1.php?ID=1820&PURL=playcom.at/IndieLondon Content-Transfer-Encoding: Base64 R0lGODlheAA8APf/APeYVrK3y/q2hnZ3eWZomEVGfPzbxPiqc3eEqfvOr0FViZeZ tjtNg/R4IZiiviI5ds1oL6mxx6asxHd4pf3k0peXmPT+/6OkvfaIPuHh4frs4ru8 vYSFquLl6+rq6oaHiN7e39PU1IKChLvB0pRKH0lLg1lak+zs7aCho8HCw05OW+zt 8TJGf7CxsiMjO/nAmWx8o8rKy+7u7zU1V+GddBcXJXh4h9ra2sDE1La8z09RhYSF vIiUtGpqdEREbsvO2/Dy9mV1nszQ3c/T3sXK2f7+/NVkH+Xl5mMuDigpQvj4+ef1 +VJjkt7e4JubnCtBe//w3mNkZ/n49fJsF2Vmg4+QyYSRsdLW4dWTbNJTB+jp7nFy nN/h59zDsgkJD6qqrOKtitzc3GxtoV1eYJiCdnx9tFJTiIo7DdbZ4rO1uIeIk83N z5RwXDo7YMbGx/738V1umlRViYuLjFlcjshcHRcwb1NUiDs7R19hklZYjdFLAufn 5/j+//H19ch3TdeEU+Lj4/V+L6Okp1ZXcZ6owdZcFK6VhD9Aen1+f9nc5Ozs7q+w uf39+8tTD+Pk5PT3+Utej1ZXjvX1815egNra38RLCdjY4ujo6uHPwhscLKKhniMQ Bers7/Dv8Obo7Li4uo2XtioqUF9gb5CbuT9Aaevq5mBgifb79u52LXxsYsZfJsWx pd/e5m9URebk3+7u6unn46anqdXc6qqqpPB5MsbG1oeIirm5tMjIyY5eQ2xJNdfa 5PP08IBya2BhmcLH1t/f4FZnlW5vi/Hw66KOgnFydU1Of+zr6C4vSuvr693d3Y+R s5iPi1BRjpGSpvPz9SEiIjAxVK6vr6emot/e3t7d20JDUvRzH93e3u3u7/r7++nq 6lprmFNsoNvb29zb5M6egtfX2N/f3+vr7N/d3enp6TIzW+VWBE5OaMjL3+fYy1hZ hn5/ie3t7e3t7pGRlcjJ1d3d6PPz8tDQ0uzs61hZW/b29vX19e/v7/Ly8vT09PPz 8/Hx8fDw8P///////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAAD/ACwAAAAAeAA8 AAAI/wD9+YvRIwqiDwgTKlzIsKHDhxAjSpxIMWGxMR+2CfTnZIC0cN5AgBBHsqTJ kyhTqlzJsqXLly9BKLsRosKYNf42iAgB7Eg5D8mCCh1KtKjRo0iTKl3KtGmycpeO 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 ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=show_ads.js Content-Type: text/javascript; charset=UTF-8; name=show_ads.js Content-Location: http://pagead2.googlesyndication.com/pagead/show_ads.js Content-Transfer-Encoding: Quoted-Printable (function(){var g=3Dnull,h=3D(new Date).getTime();var i=3Dthis,aa=3Dfunc= tion(a,b){var c=3Da.split("."),d=3Di;!(c[0]in d)&&d.execScript&&d.execSc= ript("var "+c[0]);for(var e;c.length&&(e=3Dc.shift());)!c.length&&b!=3D=3D= void 0?d[e]=3Db:d=3Dd[e]?d[e]:d[e]=3D{}},ba=3Dfunction(a,b,c){return a.c= all.apply(a.bind,arguments)},ca=3Dfunction(a,b,c){var d=3Db||i;if(argume= nts.length>2){var e=3DArray.prototype.slice.call(arguments,2);return fun= ction(){var b=3DArray.prototype.slice.call(arguments);Array.prototype.un= shift.apply(b,e);return a.apply(d,b)}}else return function(){return a.ap= ply(d, arguments)}},j=3Dfunction(a,b,c){j=3DFunction.prototype.bind&&Function.p= rototype.bind.toString().indexOf("native code")!=3D-1?ba:ca;return j.app= ly(g,arguments)};var ea=3D/&/g,fa=3D//g,ha=3D/\"/g,k=3D{"\0":= "\\0","\u0008":"\\b","\u000c":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\u= 000b":"\\x0B",'"':'\\"',"\\":"\\\\"},n=3D{"'":"\\'"},ja=3Dfunction(a){fo= r(var b=3D0,c=3DString(ia).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split(".= "),a=3DString(a).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),d=3DMat= h.max(c.length,a.length),e=3D0;b=3D=3D0&&eb)return 1;return 0};var = ka=3Ddocument,s=3Dwindow;var t=3Dfunction(a){a=3DparseFloat(a);return is= NaN(a)||a>1||a<0?0:a},w=3Dfunction(a){return a=3D=3D"true"?!0:a=3D=3D"fa= lse"?!1:!1},la=3D/^([\w-]+\.)*([\w-]{2,})(\:[0-9]+)?$/,x=3Dfunction(a){r= eturn!a?"pagead2.googlesyndication.com":(a=3Da.match(la))?a[0]:"pagead2.= googlesyndication.com"};var ma=3Dt("0"),na=3Dt("0"),pa=3Dt("0.2"),qa=3Dt= ("0.02");var ra=3Dw("false"),sa=3Dw("false"),ta=3Dw("false");var ua=3Dfu= nction(){return x("")};var y,z,B,C,va=3Dfunction(){return i.navigator?i.= navigator.userAgent:g};C=3DB=3Dz=3Dy=3D!1;var D;if(D=3Dva()){var wa=3Di.= navigator;y=3DD.indexOf("Opera")=3D=3D0;z=3D!y&&D.indexOf("MSIE")!=3D-1;= B=3D!y&&D.indexOf("WebKit")!=3D-1;C=3D!y&&!B&&wa.product=3D=3D"Gecko"}va= r E=3Dz,F=3DC,xa=3DB,G; a:{var H=3D"",I;if(y&&i.opera)var J=3Di.opera.version,H=3Dtypeof J=3D=3D= "function"?J():J;else if(F?I=3D/rv\:([^\);]+)(\)|;)/:E?I=3D/MSIE\s+([^\)= ;]+)(\)|;)/:xa&&(I=3D/WebKit\/(\S+)/),I)var ya=3DI.exec(va()),H=3Dya?ya[= 1]:"";if(E){var K,za=3Di.document;K=3Dza?za.documentMode:void 0;if(K>par= seFloat(H)){G=3DString(K);break a}}G=3DH}var ia=3DG,L=3D{},Aa=3D{},Ba=3D= function(){return Aa[9]||(Aa[9]=3DE&&document.documentMode&&document.doc= umentMode>=3D9)};!E||Ba();if(F||E)if(!E||!Ba())F&&(L["1.9.1"]||(L["1.9.1= "]=3Dja("1.9.1")>=3D0));E&&(L["9"]||(L["9"]=3Dja("9")>=3D0));x("");var M= =3Dfunction(a){return!!a&&typeof a=3D=3D"function"&&!!a.call},Ca=3Dfunct= ion(a,b){if(!(arguments.length<2))for(var c=3D1,d=3Darguments.length;c");b=3D"border:none;height:"+c+"px;m= argin:0;padding:0;position:relative;visibility:visible;width:"+b+"px";re= turn['',d.join(" "), ""].join("")};var Sa=3Dfunction(){},Ua=3Dfunction(a,b,c){swi= tch(typeof b){case "string":Ta(b,c);break;case "number":c.push(isFinite(= b)&&!isNaN(b)?b:"null");break;case "boolean":c.push(b);break;case "undef= ined":c.push("null");break;case "object":if(b=3D=3Dg){c.push("null");bre= ak}if(b instanceof Array){var d=3Db.length;c.push("[");for(var e=3D"",f=3D= 0;f\"]/.test(X)&&(X.indexOf("&")!=3D-1&&(X=3DX.replace(ea,"&")),X.= indexOf("<")!=3D-1&&(X=3DX.replace(fa,"<")),X.indexOf(">")!=3D-1&&(X=3D= X.replace(ga,">")),X.indexOf('"')!=3D-1&&(X=3DX.replace(ha,"""))= );Xa=3DX;W.prototype.set=3Dfunction(a,b){this.e.handlers[a]=3Db;this.a.a= ddEventListener&&this.a.addEventListener("load",j(this.j,this,a),!1)};W.= prototype.j=3Dfunction(a){var a=3Dthis.a.document.getElementById(a),b=3D= a.contentWindow.document;if(a.onload&&b&&(!b.body||!b.body.firstChild))a= .onload()}; W.prototype.k=3Dfunction(){if(this.e.img){var a=3Dthis.e.log,b=3Dthis.a.= document;if(a.length)b=3D["http://",ua(),"/pagead/gen_204?id=3Diframecop= y&log=3D",O(a.join("-")),"&url=3D",O(b.URL.substring(0,512)),"&ref=3D",O= (b.referrer.substring(0,512))].join(""),a.length=3D0,a=3Dnew Image,this.= e.img.push(a),a.src=3Db}};var Ya=3Dfunction(){var a=3D"script";return["<= ",a,' src=3D"http://',x(""),'/pagead/js/r20110615/r20110616/show_ads_imp= l.js">"].join("")},Za=3Dfunction(a,b,c,d){return function(){var = e=3D!1;d&&La().al(3E4);try{var f;try{f=3D!!a.document.getElementById(b).= contentWindow.document}catch(oa){f=3D!1}if(f){var r=3Da.document.getElem= entById(b).contentWindow, l=3Dr.document;if(!l.body||!l.body.firstChild)l.open(),r.google_async_if= rame_close=3D!0,l.write(c)}else{var m=3Da.document.getElementById(b).con= tentWindow,o;f=3Dc;f=3DString(f);if(f.quote)o=3Df.quote();else{r=3D['"']= ;for(l=3D0;l31&&Ha<127)A=3DN;else{var p=3D= N;if(p in n)A=3Dn[p];else if(p in k)A=3Dn[p]=3Dk[p];else{var u=3Dp,v=3Dp= .charCodeAt(0);if(v>31&&v<127)u=3Dp;else{if(v<256){if(u=3D"\\x",v<16||v>= 256)u+=3D"0"}else u=3D"\\u",v<4096&&(u+=3D"0"); u+=3Dv.toString(16).toUpperCase()}A=3Dn[p]=3Du}}da=3DA}qb[rb]=3Dda}r.pus= h('"');o=3Dr.join("")}m.location.replace("javascript:"+o)}e=3D!0}catch(x= b){m=3DGa().google_jobrunner,Ka(m)&&m.rl()}e&&(new W(a)).set(b,Za(a,b,c,= !1))}},$a=3Dfunction(){return ma&&na/ma||typeof window.google_hash_ratio= =3D=3D"number"&&window.google_hash_ratio||g};window.google_loader_used=3D= !0;(function(a){if(!("google_onload_fired"in a))a.google_onload_fired=3D= !1,Da(a,function(){a.google_onload_fired=3D!0})})(window);if(!window.goo= gle_loader_experiment)window.google_loader_experiment=3DEa(["async_good_= black","block_good_black"],pa)||Ea(["async_bad_black","block_bad_black"]= ,qa)||"launch";var ab;a:{try{if(window.google_enable_async!=3D=3D!0&&win= dow.google_loader_experiment=3D=3D"blockodd"&&window.top.location.hostna= me.length%2=3D=3D1){ab=3D!1;break a}}catch(bb){}ab=3D!0}var cb; if(cb=3Dab){var db;if(window.google_enable_async=3D=3D=3D!1)db=3D0;else{= var eb=3Dnavigator.userAgent,fb=3Dwindow.google_loader_experiment;db=3D(= Pa.test(eb)?!1:Qa.test(eb)?fb=3D=3D"async_bad_black":Oa.test(eb)?!0:fb=3D= =3D"async_good_black")&&!window.google_container_id&&(!window.google_ad_= output||window.google_ad_output=3D=3D"html")}cb=3Ddb} if(cb){var gb=3Dwindow;gb.google_unique_id?++gb.google_unique_id:gb.goog= le_unique_id=3D1;for(var Y=3Dwindow,_script$$inline_161=3D"script",Z,U=3D= Y,T=3D{allowtransparency:'"true"',frameborder:'"0"',height:'"'+Y.google_= ad_height+'"',hspace:'"0"',marginwidth:'"0"',marginheight:'"0"',onload:'= "'+Xa+'"',scrolling:'"no"',vspace:'"0"',width:'"'+Y.google_ad_width+'"'}= ,hb=3DU.document,$=3DT.id,ib=3D0;!$||U.document.getElementById($);)$=3D"= aswift_"+ib++;T.id=3D$;T.name=3D$;hb.write(Ra());Z=3D$;var jb;Y.google_p= age_url&&(Y.google_page_url=3D String(Y.google_page_url));for(var kb=3D[],lb=3D0,mb=3DV.length;lb<",_script$$inline_161,">",jb,"google_show_ads= _impl=3Dtrue;google_unique_id=3D",Y.google_unique_id,';google_async_ifra= me_id=3D"',Z,'";google_start_time=3D', h,";",wb?"google_hash_ratio=3D"+wb+";":"",yb?'google_loader_experiment=3D= "'+yb+'";':"","google_bpp=3D",vb>h?vb-h:1,";",= Ya(),""].join("");(Y.document.getElementById(Z)?Ma:Na)(Za(= Y,Z,zb,!0))}else window.google_start_time=3Dh,window.google_hash_ratio=3D= $a(),document.write(Ya());})(); ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=counter.js Content-Type: application/x-javascript; charset=utf-8; name=counter.js Content-Location: http://www.statcounter.com/counter/counter.js Content-Transfer-Encoding: Base64 dmFyIHNjX3dpZHRoPXNjcmVlbi53aWR0aDt2YXIgc2NfaGVpZ2h0PXNjcmVlbi5o ZWlnaHQ7dmFyIHNjX3JlZmVyZXI9IiIrZG9jdW1lbnQucmVmZXJyZXI7dHJ5e3Nj X3JlZmVyZXI9IiIrcGFyZW50LmRvY3VtZW50LnJlZmVycmVyfWNhdGNoKGV4KXtz Y19yZWZlcmVyPSIiK2RvY3VtZW50LnJlZmVycmVyfXZhciBzY191bmlxdWU9MDt2 YXIgc2NfcmV0dXJuaW5nPTA7dmFyIHNjX3JldHVybnM9MDt2YXIgc2NfZXJyb3I9 MDt2YXIgc2NfcmVtb3ZlPTA7dmFyIHNjX2Nscz0tMTt2YXIgc2NfaW52PTA7dmFy IHNjX29zPSIiO3ZhciBzY190aXRsZT0iIjt2YXIgc2NfdXJsPSIiO3ZhciBzY19i YXNlX2Rpcj0iIjt2YXIgc2NfY2xpY2tfZGlyPSIiO3ZhciBzY19saW5rX2JhY2tf c3RhcnQ9IiI7dmFyIHNjX2xpbmtfYmFja19lbmQ9IiI7dmFyIHNjX3NlY3VyaXR5 X2NvZGU9IiI7dmFyIHNjX2h0dHBfdXJsPSJodHRwIjt2YXIgc2NfaG9zdD0ic3Rh dGNvdW50ZXIuY29tIjtpZih3aW5kb3cuc2NfaW52aXNpYmxlKXtpZih3aW5kb3cu c2NfaW52aXNpYmxlPT0xKXtzY19pbnY9MX19aWYod2luZG93LnNjX2NsaWNrX3N0 YXQpe3NjX2Nscz13aW5kb3cuc2NfY2xpY2tfc3RhdH1pZih3aW5kb3cuc2NfaHR0 cHMpe2lmKHNjX2h0dHBzPT0xKXtzY19kb2NfbG9jPScnK2RvY3VtZW50LmxvY2F0 aW9uO215UkU9bmV3IFJlZ0V4cCgiXmh0dHBzIiwiaSIpO2lmKHNjX2RvY19sb2Mu bWF0Y2gobXlSRSkpe3NjX2h0dHBfdXJsPSJodHRwcyJ9fX1pZih3aW5kb3cuc2Nf bG9jYWwpe3NjX2Jhc2VfZGlyPXNjX2xvY2FsfWVsc2V7aWYoc2NfY2xzPT0tMSl7 c2NfY2xzPTF9c2NfYmFzZV9kaXI9c2NfaHR0cF91cmwrIjovL2MuIitzY19ob3N0 KyIvIn1zY19jbGlja19kaXI9c2NfYmFzZV9kaXI7aWYod2luZG93LnNjX3RleHQp e3NjX2Jhc2VfZGlyKz0idGV4dC5waHA/In1lbHNle3NjX2Jhc2VfZGlyKz0idC5w aHA/In1pZih3aW5kb3cuc2NfcHJvamVjdCl7c2NfYmFzZV9kaXIrPSJzY19wcm9q ZWN0PSIrc2NfcHJvamVjdH1lbHNlIGlmKHdpbmRvdy51c3Ipe3NjX2Jhc2VfZGly Kz0idXNyPSIrdXNyfWVsc2V7c2NfZXJyb3I9MX1pZih3aW5kb3cuc2NfcmVtb3Zl X2xpbmspe3NjX2xpbmtfYmFja19zdGFydD0iIjtzY19saW5rX2JhY2tfZW5kPSIi fWVsc2V7c2NfbGlua19iYWNrX3N0YXJ0PSI8YSBjbGFzcz1cInN0YXRjb3VudGVy XCIgaHJlZj1cImh0dHA6Ly93d3cuIitzY19ob3N0KyJcIiB0YXJnZXQ9XCJfYmxh bmtcIj4iO3NjX2xpbmtfYmFja19lbmQ9IjxcL2E+In1zY19kYXRlPW5ldyBEYXRl KCk7c2NfdGltZT1zY19kYXRlLmdldFRpbWUoKTtzY190aW1lX2RpZmZlcmVuY2U9 MzYwMDAwMDtzY190aXRsZT0iIitkb2N1bWVudC50aXRsZTtzY191cmw9IiIrZG9j dW1lbnQubG9jYXRpb247c2NfcmVmZXJlcj1zY19yZWZlcmVyLnN1YnN0cmluZygw LDYwMCk7c2NfdGl0bGU9c2NfdGl0bGUuc3Vic3RyaW5nKDAsMzAwKTtzY191cmw9 c2NfdXJsLnN1YnN0cmluZygwLDMwMCk7c2NfcmVmZXJlcj1lc2NhcGUoc2NfcmVm ZXJlcik7aWYoZW5jb2RlVVJJQ29tcG9uZW50KXtzY190aXRsZT1lbmNvZGVVUklD b21wb25lbnQoc2NfdGl0bGUpfWVsc2V7c2NfdGl0bGU9ZXNjYXBlKHNjX3RpdGxl KX1zY191cmw9ZXNjYXBlKHNjX3VybCk7aWYod2luZG93LnNjX3NlY3VyaXR5KXtz Y19zZWN1cml0eV9jb2RlPXNjX3NlY3VyaXR5fWlmKHNjX3NjcmlwdF9udW0pe3Nj X3NjcmlwdF9udW0rK31lbHNle3ZhciBzY19zY3JpcHRfbnVtPTF9dmFyIHNjX3Ry YWNraW5nX3VybD1zY19iYXNlX2RpcisiJnJlc29sdXRpb249IitzY193aWR0aCsi Jmg9IitzY19oZWlnaHQrIiZjYW1lZnJvbT0iK3NjX3JlZmVyZXIrIiZ1PSIrc2Nf dXJsKyImdD0iK3NjX3RpdGxlKyImamF2YT0xJnNlY3VyaXR5PSIrc2Nfc2VjdXJp dHlfY29kZSsiJnNjX3JhbmRvbT0iK01hdGgucmFuZG9tKCkrIiZzY19zbnVtPSIr c2Nfc2NyaXB0X251bTt2YXIgc2NfY2xzdHI9IjxzcGFuIGNsYXNzPVwic3RhdGNv dW50ZXJcIj4iO3ZhciBzY19jbHRleHQ9IlwiIGFsdD1cIlN0YXRDb3VudGVyIC0g RnJlZSBXZWIgVHJhY2tlciBhbmQgQ291bnRlclwiIGJvcmRlcj1cIjBcIj4iO3Zh ciBzY19zdHJvdXQ9c2NfY2xzdHIrc2NfbGlua19iYWNrX3N0YXJ0KyI8aW1nIHNy Yz1cIiIrc2NfdHJhY2tpbmdfdXJsK3NjX2NsdGV4dCtzY19saW5rX2JhY2tfZW5k KyI8L3NwYW4+IjtpZihzY19lcnJvcj09MSl7ZG9jdW1lbnQud3JpdGVsbigiQ29k ZSBjb3JydXB0ZWQuIEluc2VydCBmcmVzaCBjb3B5LiIpfWVsc2UgaWYoc2NfcmVt b3ZlPT0xKXt9ZWxzZXtpZihzY19pbnY9PTEpe2lmKHdpbmRvdy5zY19jYWxsKXtz Y19jYWxsKyt9ZWxzZXtzY19jYWxsPTF9ZXZhbCgidmFyIHNjX2ltZyIrc2NfY2Fs bCsiID0gbmV3IEltYWdlKCk7c2NfaW1nIitzY19jYWxsKyIuc3JjID0gXCIiK3Nj X3RyYWNraW5nX3VybCsiJmludmlzaWJsZT0xXCIiKX1lbHNlIGlmKHdpbmRvdy5z Y190ZXh0KXtkb2N1bWVudC53cml0ZWxuKCc8c2NyJysnaXB0IGxhbmd1YWdlPSJK YXZhU2NyaXB0IicrJyBzcmM9JytzY190cmFja2luZ191cmwrIiZ0ZXh0PSIrc2Nf dGV4dCsnPjwvc2NyJysnaXB0PicpfWVsc2V7ZG9jdW1lbnQud3JpdGVsbihzY19z dHJvdXQpfX1pZihzY19jbHM+MCl7aWYoY2xpY2tzdGF0X2RvbmUhPTEpe3ZhciBj bGlja3N0YXRfZG9uZT0xO3ZhciBjbGlja3N0YXRfcHJvamVjdD13aW5kb3cuc2Nf cHJvamVjdDt2YXIgY2xpY2tzdGF0X3NlY3VyaXR5PXdpbmRvdy5zY19zZWN1cml0 eV9jb2RlO3ZhciBkbGV4dD0iN3p8YWFjfGF2aXxjc3Z8ZG9jfGRvY3h8ZXhlfGZs dnxnaWZ8Z3p8anBlP2d8anN8bXAoM3w0fGU/Zyl8bW92fHBkZnxwaHBzfHBuZ3xw cHR8cmFyfHNpdHx0YXJ8dG9ycmVudHx0eHR8d21hfHdtdnx4bHN8eGxzeHx4bWx8 emlwIjtpZih0eXBlb2Yod2luZG93LnNjX2Rvd25sb2FkX3R5cGUpPT0nc3RyaW5n Jyl7ZGxleHQ9d2luZG93LnNjX2Rvd25sb2FkX3R5cGV9dmFyIGx0eXBlPSJodHRw cz98ZnRwfHRlbG5ldHxzc2h8c3NsfG1haWx0byI7dmFyIHNlY29uZD0iYWN8Y298 Z292fGx0ZHxtZXxtb2R8bmV0fG5pY3xuaHN8b3JnfHBsY3xwb2xpY2V8c2NofGNv bSI7dmFyIGRsPW5ldyBSZWdFeHAoIlxcLigiK2RsZXh0KyIpJCIsImkiKTt2YXIg bG5rPW5ldyBSZWdFeHAoIl4oIitsdHlwZSsiKToiLCJpIik7dmFyIGRvbXNlYz1u ZXcgUmVnRXhwKCJcXigiK3NlY29uZCsiKSQiLCJpIik7dmFyIGhvc3RfbmFtZT1s b2NhdGlvbi5ob3N0LnJlcGxhY2UoL153d3dcLi9pLCIiKTt2YXIgaG9zdF9zcGxp dHRlZD1ob3N0X25hbWUuc3BsaXQoIi4iKTt2YXIgZG9tYWluPWhvc3Rfc3BsaXR0 ZWQucG9wKCk7dmFyIGhvc3Rfc3BsaXQ9aG9zdF9zcGxpdHRlZC5wb3AoKTtpZihk b21zZWMudGVzdChob3N0X3NwbGl0KSl7ZG9tYWluPWhvc3Rfc3BsaXQrIi4iK2Rv bWFpbjtob3N0X3NwbGl0PWhvc3Rfc3BsaXR0ZWQucG9wKCl9ZG9tYWluPWhvc3Rf c3BsaXQrIi4iK2RvbWFpbjt2YXIgbG5rbG9jYWxfbWFzaz0iXmh0dHBzPzpcL1wv KC4qKSgiK2RvbWFpbisifHdlYmNhY2hlLmdvb2dsZXVzZXJjb250ZW50LmNvbSki O3ZhciBsbmtsb2NhbD1uZXcgUmVnRXhwKGxua2xvY2FsX21hc2ssImkiKTtpZihk b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSl7dmFyIGFuY2hvcnM9ZG9jdW1l bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2EnKTtmb3IodmFyIGk9MDtpPGFuY2hv cnMubGVuZ3RoO2krKyl7dmFyIGFuY2hvcj1hbmNob3JzW2ldO2lmKGFuY2hvci5v bm1vdXNlZG93bil7dmFyIG9yaWdpbmFsX2NsaWNrPWFuY2hvci5vbm1vdXNlZG93 bjt2YXIgcz1vcmlnaW5hbF9jbGljay50b1N0cmluZygpLnNwbGl0KCJcbiIpLmpv aW4oIiAiKTt2YXIgYnM9cy5pbmRleE9mKCd7Jyk7dmFyIGhlYWQ9cy5zdWJzdHIo MCxicyk7dmFyIHBzPWhlYWQuaW5kZXhPZignKCcpO3ZhciBwZT1oZWFkLmluZGV4 T2YoJyknKTt2YXIgcGFyYW1zPWhlYWQuc3Vic3RyaW5nKHBzKzEscGUpO3ZhciBw bGlzdD1wYXJhbXMuc3BsaXQoIiwiKTt2YXIgYm9keT1zLnN1YnN0cihicysxLHMu bGVuZ3RoLWJzLTIpO3ZhciBpbnNlcnQ9InNjX2NsaWNrc3RhdF9jYWxsKHRoaXMs JyIrc2NfY2xpY2tfZGlyKyInKTsiO3ZhciBmaW5hbF9ib2R5PWluc2VydCtib2R5 O3ZhciBldl9oZWFkPSJuZXcgRnVuY3Rpb24gKCI7dmFyIGV2X3BhcmFtcz0iIjt2 YXIgZXZfc2VwPSIiO2Zvcih2YXIgc2NfaT0wO3NjX2k8cGxpc3QubGVuZ3RoO3Nj X2krKyl7ZXZfcGFyYW1zPWV2X3NlcCsiJyIrcGxpc3Rbc2NfaV0rIiciO2V2X3Nl cD0iLCJ9aWYoZXZfc2VwPT0iLCIpe2V2X3BhcmFtcys9IiwifXZhciBldl9mb290 PSJmaW5hbF9ib2R5KTsiO3ZhciBldl9maW5hbD1ldl9oZWFkK2V2X3BhcmFtcytl dl9mb290O2FuY2hvci5vbm1vdXNlZG93bj1ldmFsKGV2X2ZpbmFsKX1lbHNle2Fu Y2hvci5vbm1vdXNlZG93bj1uZXcgRnVuY3Rpb24oImV2ZW50Iiwic2NfY2xpY2tz dGF0X2NhbGwodGhpcywnIitzY19jbGlja19kaXIrIicpO3JldHVybiB0cnVlOyIp fX19ZnVuY3Rpb24gc2Nfbm9uZSgpe3JldHVybn1mdW5jdGlvbiBzY19kZWxheSgp e2lmKHdpbmRvdy5zY19jbGlja19zdGF0KXt2YXIgZD13aW5kb3cuc2NfY2xpY2tf c3RhdH1lbHNle3ZhciBkPTI1MH12YXIgbj1uZXcgRGF0ZSgpO3ZhciB0PW4uZ2V0 VGltZSgpK2Q7d2hpbGUobi5nZXRUaW1lKCk8dCl7dmFyIG49bmV3IERhdGUoKX19 ZnVuY3Rpb24gc2NfY2xpY2tzdGF0X2NhbGwoYWRhdGEsc2NfY2xpY2tfZGlyKXtp ZihhZGF0YSl7dmFyIGNsaWNrbW9kZT0wO2lmKGxuay50ZXN0KGFkYXRhKSl7aWYo KGxua2xvY2FsLnRlc3QoYWRhdGEpKSl7aWYoZGwudGVzdChhZGF0YSkpe2NsaWNr bW9kZT0xfWVsc2UgaWYod2luZG93LnNjX2V4aXRfbGlua19kZXRlY3QmJm5ldyBS ZWdFeHAoc2NfZXhpdF9saW5rX2RldGVjdCwiaSIpLnRlc3QoYWRhdGEpKXtjbGlj a21vZGU9Mn1lbHNlIGlmKHNjX2Nscz09Mil7Y2xpY2ttb2RlPTJ9fWVsc2V7Y2xp Y2ttb2RlPTJ9fWlmKGNsaWNrbW9kZSE9MCl7dmFyIHNjX2xpbms9ZXNjYXBlKGFk YXRhKTtpZihzY19saW5rLmxlbmd0aD4wKXt2YXIgc2NfcmVxPXNjX2NsaWNrX2Rp cisiY2xpY2suZ2lmP3NjX3Byb2plY3Q9IitjbGlja3N0YXRfcHJvamVjdCsiJnNl Y3VyaXR5PSIrY2xpY2tzdGF0X3NlY3VyaXR5KyImYz0iK3NjX2xpbmsrIiZtPSIr Y2xpY2ttb2RlKyImdT0iK3NjX3VybCsiJnQ9IitzY190aXRsZSsiJnJhbmQ9IitN YXRoLnJhbmRvbSgpO3ZhciBzY19yZXFfaW1hZ2U9bmV3IEltYWdlKCk7c2NfcmVx X2ltYWdlLm9ubG9hZD1zY19ub25lO3NjX3JlcV9pbWFnZS5zcmM9c2NfcmVxO3Nj X2RlbGF5KCl9fX19dmFyIHNjX2dzeW5fcGF0dGVybj0nZ29vZ2xlc3luZGljYXRp b25cLmNvbXx5cG4tanNcLm92ZXJ0dXJlXC5jb218eXBuLWpzXC55c21cLnlhaG9v XC5jb218Z29vZ2xlYWRzXC5nXC5kb3VibGVjbGlja1wubmV0Jzt2YXIgc2NfZ3N5 bl9wYXR0ZXJuMj0nXmFzd2lmdF9bMC05XSskJzt2YXIgc2NfcHg7dmFyIHNjX3B5 O2Z1bmN0aW9uIHNjX2Fkc2Vuc2VfY2xpY2soc2NfZGF0YSl7aWYoc2NfZGF0YS5z cmMubWF0Y2goc2NfZ3N5bl9wYXR0ZXJuKSl7dmFyIHNjX2xpbms9ZXNjYXBlKHNj X2RhdGEuc3JjKX1lbHNle3ZhciBzY19saW5rPWVzY2FwZSgiR29vZ2xlIEFkc2Vu c2UgIitzY19kYXRhLndpZHRoKyJ4IitzY19kYXRhLmhlaWdodCl9dmFyIGk9bmV3 IEltYWdlKCk7dmFyIHNjX3JlcT1zY19jbGlja19kaXIrImNsaWNrLmdpZj9zY19w cm9qZWN0PSIrY2xpY2tzdGF0X3Byb2plY3QrIiZzZWN1cml0eT0iK2NsaWNrc3Rh dF9zZWN1cml0eSsiJmM9IitzY19saW5rKyImbT0yJnU9IitzY191cmwrIiZ0PSIr c2NfdGl0bGUrIiZyYW5kPSIrTWF0aC5yYW5kb20oKTtpLnNyYz1zY19yZXE7c2Nf ZGVsYXkoKX1mdW5jdGlvbiBzY19hZHNlbnNlX2luaXQoKXtpZihkb2N1bWVudC5h bGwmJnR5cGVvZiB3aW5kb3cub3BlcmE9PSJ1bmRlZmluZWQiKXt2YXIgZWw9ZG9j dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpO2Zvcih2YXIgaT0w O2k8ZWwubGVuZ3RoO2krKyl7aWYoZWxbaV0uc3JjLm1hdGNoKHNjX2dzeW5fcGF0 dGVybil8fGVsW2ldLmlkLm1hdGNoKHNjX2dzeW5fcGF0dGVybjIpKXtlbFtpXS5v bmZvY3VzPWZ1bmN0aW9uKCl7c2NfYWRzZW5zZV9jbGljayh0aGlzKX19fX1lbHNl e2lmKHR5cGVvZiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciE9InVuZGVmaW5lZCIp e3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLHNjX2V4aXRwYWdlLGZh bHNlKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixzY19nZXRt b3VzZSx0cnVlKX19fWlmKHR5cGVvZiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciE9 J3VuZGVmaW5lZCcpe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJyxzY19h ZHNlbnNlX2luaXQsZmFsc2UpfWVsc2V7aWYodHlwZW9mIGRvY3VtZW50LmFkZEV2 ZW50TGlzdGVuZXIhPSd1bmRlZmluZWQnKXtkb2N1bWVudC5hZGRFdmVudExpc3Rl bmVyKCdsb2FkJyxzY19hZHNlbnNlX2luaXQsZmFsc2UpfWVsc2V7aWYodHlwZW9m IHdpbmRvdy5hdHRhY2hFdmVudCE9J3VuZGVmaW5lZCcpe3dpbmRvdy5hdHRhY2hF dmVudCgnb25sb2FkJyxzY19hZHNlbnNlX2luaXQpfWVsc2V7aWYodHlwZW9mIHdp bmRvdy5vbmxvYWQ9PSdmdW5jdGlvbicpe3ZhciBzY19leGlzdGluZz1vbmxvYWQ7 d2luZG93Lm9ubG9hZD1mdW5jdGlvbigpe3NjX2V4aXN0aW5nKCk7c2NfYWRzZW5z ZV9pbml0KCl9fWVsc2V7d2luZG93Lm9ubG9hZD1zY19hZHNlbnNlX2luaXR9fX19 ZnVuY3Rpb24gc2NfZ2V0bW91c2UoZSl7aWYodHlwZW9mIGUucGFnZVg9PSJudW1i ZXIiKXtzY19weD1lLnBhZ2VYO3NjX3B5PWUucGFnZVl9ZWxzZXtpZih0eXBlb2Yg ZS5jbGllbnRYPT0ibnVtYmVyIil7c2NfcHg9ZS5jbGllbnRYO3NjX3B5PWUuY2xp ZW50WTtpZihkb2N1bWVudC5ib2R5JiYoZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0 fHxkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCkpe3NjX3B4Kz1kb2N1bWVudC5ib2R5 LnNjcm9sbExlZnQ7c2NfcHkrPWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wfWVsc2V7 aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiYoZG9jdW1lbnQuZG9jdW1lbnRF bGVtZW50LnNjcm9sbExlZnR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3Jv bGxUb3ApKXtzY19weCs9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExl ZnQ7c2NfcHkrPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B9fX19 fWZ1bmN0aW9uIHNjX2ZpbmR5KG9iail7dmFyIHk9MDt3aGlsZShvYmope3krPW9i ai5vZmZzZXRUb3A7b2JqPW9iai5vZmZzZXRQYXJlbnR9cmV0dXJuKHkpfWZ1bmN0 aW9uIHNjX2ZpbmR4KG9iail7dmFyIHg9MDt3aGlsZShvYmope3grPW9iai5vZmZz ZXRMZWZ0O29iaj1vYmoub2Zmc2V0UGFyZW50fXJldHVybih4KX1mdW5jdGlvbiBz Y19leGl0cGFnZShlKXthZD1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi aWZyYW1lIik7aWYodHlwZW9mIHNjX3B4PT0idW5kZWZpbmVkIil7cmV0dXJufWZv cih2YXIgaT0wO2k8YWQubGVuZ3RoO2krKyl7dmFyIGFkTGVmdD1zY19maW5keChh ZFtpXSk7dmFyIGFkVG9wPXNjX2ZpbmR5KGFkW2ldKTt2YXIgYWRXPXBhcnNlSW50 KGFkTGVmdCkrcGFyc2VJbnQoYWRbaV0ud2lkdGgpKzE1O3ZhciBhZEg9cGFyc2VJ bnQoYWRUb3ApK3BhcnNlSW50KGFkW2ldLmhlaWdodCkrMTA7dmFyIGluRnJhbWVY PShzY19weD4oYWRMZWZ0LTEwKSYmc2NfcHg8YWRXKTt2YXIgaW5GcmFtZVk9KHNj X3B5PihhZFRvcC0xMCkmJnNjX3B5PGFkSCk7aWYoaW5GcmFtZVkmJmluRnJhbWVY KXtpZihhZFtpXS5zcmMubWF0Y2goc2NfZ3N5bl9wYXR0ZXJuKXx8YWRbaV0uaWQu bWF0Y2goc2NfZ3N5bl9wYXR0ZXJuMikpe3NjX2Fkc2Vuc2VfY2xpY2soYWRbaV0p fX19fX19 ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=index.htm Content-Type: text/html; charset=utf-8; name=index.htm Content-Location: http://www.indielondon.co.uk/index.php?js=upm_img_popper Content-Transfer-Encoding: 8bit function upm_pop_img(src, w, h, name, title) { ww = w ; wh = h; if (ww < 175) { ww = 175; } if (wh < 100) { wh = 100; } if (!title) { title = name; } t = (screen.height) ? (screen.height - wh) / 2 : 0; l = (screen.width) ? (screen.width - ww) / 2 : 0; var upm_pop_win = window.open('', 'upm_pop_win', 'top='+t+', left='+l+', width='+ww+', height='+wh+', toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, copyhistory=no, resizable=yes'); upm_pop_win.document.open(); upm_pop_win.document.writeln(''); upm_pop_win.document.writeln(''); upm_pop_win.document.writeln(''); upm_pop_win.document.writeln(''); upm_pop_win.document.writeln(''); upm_pop_win.document.writeln(''); upm_pop_win.document.writeln(''+title+''); upm_pop_win.document.writeln(''); upm_pop_win.document.writeln(''); upm_pop_win.document.writeln(''); upm_pop_win.document.writeln('
'); upm_pop_win.document.writeln(''); upm_pop_win.document.writeln('
'); upm_pop_win.document.writeln(''); upm_pop_win.document.write(''); upm_pop_win.document.close(); upm_pop_win.focus(); } ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=like.htm Content-Type: text/html; charset=utf-8; name=like.htm Content-Location: http://www.facebook.com/plugins/like.php?href=http://www.indielondon.co.uk/DVD-Review/sanctum-andrew-wight-interview&layout=standard&show_faces=false&width=450&action=like&colorscheme=light&height=35 Content-Transfer-Encoding: Quoted-Printable Like | Facebook
<= td class=3D"connect_widget_vertical_center">
You like this. · Add Comment · Admin Page · Insights · ErrorYou like thisSign Up to = see what your friends like. · Add Comment · Admin Page · Insights · Error
Confirm
------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=ql9vukDCc4R.png Content-Type: image/png; name=ql9vukDCc4R.png Content-Location: http://static.ak.fbcdn.net/rsrc.php/v1/z7/r/ql9vukDCc4R.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABAAAAEfCAMAAAB/DLYyAAABI1BMVEX////////+ /v40NDSbq8tsg7Pl6fLq7fQ2WJnS2um7u7tmZmbh4eFzirbCyt9kZGTZ2dlERERV VVVRbKQeRYC9yN6+vr5geKyqqqrDw8M7WZji5vDT09Oenp5NTU1jeKN1i7jd3d3H x8fU1NTu7u7e4u5id6LLy8umpqbo6OjP2Oh1dXWJiYm4uLjOzs7b29vp6elof7HA wMCRkZFYapHFzOLy8vKMjIygoKCNoMV+fn6rq6t7j7rl5eW/yuBlZWWuu9W/xduN jY3u8fbT2eji4uKpqam8vLx3d3eoqKh7e3u9vb3u8PbX19dKaKTk5OSKioqkpKQ5 VZS0tLT29vZPaqNVcan6+vq2wNxwg6+MnsNXapCwvttXV1ded65paWmQpMmBnePY AAAAAXRSTlMAQObYZgAAAyRJREFUeF61juWW40oMBtNtO8yMg8zMsMx0men9n2K/ dhyNlBwle5LcmsmPqiOpHZsJryS9bIeCZz3hzwsIcsB6nvdvuOwBOOgPeTc3UB4K hWmC5xV+dGEhegWTW67CZ8O+kN6JDQWLP85fKRmcWWt3wmXroIzlWg3KQyo1TbA2 9Z8L8egVTPiuwmcj+Vn6P3YoJG1SuJ9DkAM2mUwuhctJAAf9oeT1NZSHXG5SWBqd wNFc3oVfolcw+dsSKnw6Gm2iEQYIwUPOmJwIJv5sQ4ZnYqXimx2/wgIujNzYQVdC EGLWg0AES6FR/aEa/TdicyQbywIWNrPFbreYZaG7Cbos1ENYaDlvsRCTAwjbgIft bLGYRaEAR2EBCh5DayTEpCOcAh5Oe1tbPVZavdegxwIUjAsx6Qh/Ah7ONoJg4+wx 1BcDsMgCFOgBkKs8AOGpeDzFy0MCjA+pRAIr6lHgA+G1TqfGix9PJOLjQy0epxVx VH/laT7/VNzIn5/ntSBX9FfaQHjl+LjCSzsA40MlCGiFHZ2eu+qAu36otgdUeWj4 DRn8RE2GF75csdbKid/t8I0EWwkc1g8CERIUxJfOnfSwp9Oqp8lplpyKvk9XZuVn IvL1jxHrKC50iEH4I4SCNgHUiZcDfzl4F7Th+A4GClwWBFkQ/n8yw57JqJ4hp1ly Kvo+XZk3HhG5ITwtFEImTgB9QgYUh1PnBApcFAQJNuZIhoi8TGS00J+fOAHUCRkA nXROoMBFQZBgY46kiciXibQW+vMTJ4A6IQOgk84JFLgoCBK5MZlXQPjqysoqL69W gB5oRT8KykD4Qqm0wEu5BPRAK/pRsAyE36+t3fOyvAb0QCv6UcnJ9wNO+gEygIKB GBaMMe7HJwCbAKHrE3RDf4VQvnSEkjeg1A/eIxQMxLBgjHE/PgHYBAhdn6Ab+iuE 8qXfQPM7ohkGCMHDB2PeiGB+PXonw5FYuTo0F4dXLLwxZuTGBboS9kPMT/v7Smi+ JZqxb6P8hCiHAULw8NyYSxHMl/p7GepiZffWHNzusnBpzMiNA3Ql7IWYT3t7Sij/ TeDTvwLENdsHdW/D3AAAAABJRU5ErkJggg== ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=p13yZ069LVL.png Content-Type: image/png; name=p13yZ069LVL.png Content-Location: http://static.ak.fbcdn.net/rsrc.php/v1/zF/r/p13yZ069LVL.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAfQAAAAwCAYAAADn2IicAAAAAXNSR0IArs4c6QAA AAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sG BhIwM2EyzMsAAAAidEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVAgb24gYSBN YWOHqHdDAAACaklEQVR4Xu3dUU0EURREwYGMdjSgBxH84QANDGvjnS4UbFe/pHMX Et4+vz6eyw8BAgQIECBwtMD98/t9dAAfngABAgQIELiu+3oc6B4CAQIECBA4XeB+ LoN+eok+PwECBAgQuB8XuldAgAABAgSOF3ChH1+hAAQIECBA4PU7dBe6Z0CAAAEC BM4XcKGf36EEBAgQIEDAhe4NECBAgACBgoCv3AstykCAAAEC8wKvr9z/5hEAECBA gACB0wVc6Kc36PMTIECAAIGXgD+K8wwIECBAgEBAwIUeKFEEAgQIECDgQvcGCBAg QIBAQMA/ZwmUKAIBAgQIEHChewMECBAgQCAg8LrQAylEIECAAAEC4wIu9PEHID4B AgQINATeGzGkIECAAAEC2wIGfbt/6QkQIEAgImDQI0WKQYAAAQLbAgZ9u3/pCRAg QCAiYNAjRYpBgAABAtsCBn27f+kJECBAICJg0CNFikGAAAEC2wIGfbt/6QkQIEAg ImDQI0WKQYAAAQLbAgZ9u3/pCRAgQCAiYNAjRYpBgAABAtsCBn27f+kJECBAICJg 0CNFikGAAAEC2wIGfbt/6QkQIEAgImDQI0WKQYAAAQLbAgZ9u3/pCRAgQCAiYNAj RYpBgAABAtsCBn27f+kJECBAICJg0CNFikGAAAEC2wIGfbt/6QkQIEAgImDQI0WK QYAAAQLbAgZ9u3/pCRAgQCAiYNAjRYpBgAABAtsCBn27f+kJECBAICJg0CNFikGA AAEC2wIGfbt/6QkQIEAgImDQI0WKQYAAAQLbAgZ9u3/pCRAgQCAiYNAjRYpBgAAB AtsC/x+yLNp5p6+GAAAAAElFTkSuQmCC ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=wBBYAgOjf8k.png Content-Type: image/png; name=wBBYAgOjf8k.png Content-Location: http://static.ak.fbcdn.net/rsrc.php/v1/zg/r/wBBYAgOjf8k.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAfQAAAAwCAYAAADn2IicAAAAAXNSR0IArs4c6QAA AAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sG BhIxLPUh8H8AAAAidEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVAgb24gYSBN YWOHqHdDAAACW0lEQVR4Xu3d0U3DUBBE0Rfk6lMD1dBFviiAIozb2LuHCjJnVhoF h/B6f//cxw8BAgQIECAwWuD6/P6NDuDFEyBAgAABAud8QSBAgAABAgTmCxj0+R1K QIAAAQIEznXfHqG7AwIECBAgMF3gMufTK/T6CRAgQIDA8Q7dERAgQIAAgYKAZ+iF FmUgQIAAgfUCzzP09QYACBAgQIDAeAHv0MdXKAABAgQIEPAM3Q0QIECAAIGEgF+5 J2oUggABAgS2C/g79O0XID8BAgQIJASu40NxiSKFIECAAIHdAs8Xy1j03ScgPQEC BAgUBHxTXKFFGQgQIEBgvYAPxa0/AQAECBAgUBDwDL3QogwECBAgsF7gOp6hrz8C AAQIECAwX8A3xc3vUAICBAgQIPD8tzUIBAgQIECAwHgB79DHVygAAQIECBA4x6C7 AgIECBAgEBAw6IESRSBAgAABAgbdDRAgQIAAgYCAQQ+UKAIBAgQIEDDoboAAAQIE CAQEDHqgRBEIECBAgIBBdwMECBAgQCAgYNADJYpAgAABAgQMuhsgQIAAAQIBAYMe KFEEAgQIECBg0N0AAQIECBAICBj0QIkiECBAgAABg+4GCBAgQIBAQMCgB0oUgQAB AgQIGHQ3QIAAAQIEAgIGPVCiCAQIECBAwKC7AQIECBAgEBAw6IESRSBAgAABAgbd DRAgQIAAgYCAQQ+UKAIBAgQIEDDoboAAAQIECAQEDHqgRBEIECBAgIBBdwMECBAg QCAgYNADJYpAgAABAgQMuhsgQIAAAQIBAYMeKFEEAgQIECDwDxzAH+4YIOZTAAAA AElFTkSuQmCC ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=Ti0C6b-OIEQ.css Content-Type: text/css; charset=utf-8; name=Ti0C6b-OIEQ.css Content-Location: http://static.ak.fbcdn.net/rsrc.php/v1/y0/r/Ti0C6b-OIEQ.css Content-Transfer-Encoding: 8bit /*1308871176,169775559*/ form{margin:0;padding:0} label{cursor:pointer;color:#666;font-weight:bold;vertical-align:middle} label input{font-weight:normal} textarea,.inputtext,.inputpassword{border:1px solid #bdc7d8;font-family:"lucida grande",tahoma,verdana,arial,sans-serif;font-size: 11px;padding:3px} select{border:1px solid #bdc7d8;font-family:"lucida grande",tahoma,verdana,arial,sans-serif;font-size: 11px;padding:2px} .inputtext,.inputpassword{margin:0;padding-bottom:4px} .inputradio{padding:0;margin:0 5px 0 0;vertical-align:middle} .inputcheckbox{border:0;vertical-align:middle} .inputbutton,.inputsubmit{border-style:solid;border-width:1px;border-color:#d9dfea #0e1f5b #0e1f5b #d9dfea;background-color:#3b5998;color:#fff;padding:2px 15px 3px 15px;text-align:center} .inputsubmit_disabled{background-color:#999;border-bottom:1px solid #000;border-right:1px solid #666;color:#fff} .inputaux{background:#f0f0f0;border-color:#e7e7e7 #666 #666 #e7e7e7;color:#000} .inputaux_disabled{color:#999} .inputsearch{background:#fff url(http://static.ak.fbcdn.net/rsrc.php/v1/zV/r/IJYgcESal33.png) no-repeat left 4px;padding-left:17px} body{background:#fff;font-size: 11px;font-family:"lucida grande",tahoma,verdana,arial,sans-serif;color:#333;margin:0;padding:0;text-align:left;direction:ltr;unicode-bidi:embed} h1, h2, h3, h4, h5, h6{font-size: 13px;color:#333;margin:0;padding:0} h1{font-size: 14px} h4, h5{font-size: 11px} p{margin:1em 0} a{cursor:pointer;color:#3b5998;-moz-outline-style:none;text-decoration:none} a:hover{text-decoration:underline} img{border:0} td, td.label{font-size: 11px;text-align:left} dd{color:#000} dt{color:#777} ul{list-style-type:none;margin:0;padding:0} abbr{border-bottom:none} hr{background:#d9d9d9;border-width:0;color:#d9d9d9;height:1px} .clearfix:after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden} .clearfix{display:block;zoom:1} .datawrap{word-wrap:break-word} .word_break{display:block;float:left;margin-left:-10px;padding:0} .img_loading{position:absolute;left:-100000px;top:-100000px} .aero{opacity:.5} .column{float:left} .center{margin-left:auto;margin-right:auto} #facebook .hidden_elem{display:none !important} #facebook .invisible_elem{visibility:hidden} .direction_ltr{direction:ltr} .direction_rtl{direction:rtl} .text_align_ltr{text-align:left} .text_align_rtl{text-align:right} .DOMControl_placeholder{color:#777} .no_js .DOMControl_placeholder{color:#000} .DOMControl_shadow{left:-10000px;position:absolute;top:-10000px;white-space:pre-wrap} body{overflow-y:scroll} .mini_iframe,.serverfbml_iframe{overflow-y:visible} .auto_resize_iframe{height:auto} .pipe{color:#808080;padding:0 3px} #content{width:auto;padding:0;margin:0} .profile #content,.home #content,.search #content{min-height:600px} .UIStandardFrame_Container{width:960px;padding:0;margin:20px auto 0} .UIStandardFrame_Content{width:760px;float:left;margin:0;padding:0} .UIStandardFrame_SidebarAds{width:200px;padding:0;margin:0;float:right} .UIFullPage_Container{width:940px;padding:0 12px;margin:20px auto 0} .empty_message{font-size: 13px;line-height:17px;padding:20px 20px 50px 20px;text-align:center;background:#f7f7f7} .see_all{text-align:right} .standard_status_element{visibility:hidden} .standard_status_element.async_saving{visibility:visible} img.tracking_pixel{height:1px;position:absolute;visibility:hidden;width:1px} #dropmenu_container{display:block;height:0;margin:0 auto;padding:0;position:absolute;width:964px;z-index:300} .connect_comment_widget{margin:0 4px;padding:5px 0;position:relative} .connect_comment_widget .nub{background:transparent url(http://static.ak.fbcdn.net/rsrc.php/v1/zv/r/agyQHs6yLID.gif) no-repeat 8px 0;height:6px;width:20px;padding:0;margin:0;left:0;line-height:0;position:absolute;z-index:2;top:0} .connect_comment_widget .side_nub{background:transparent url(http://static.ak.fbcdn.net/rsrc.php/v1/zn/r/vAOEfR4cWQM.gif) no-repeat 0 0;height:20px;width:6px;padding:0;margin:0;left:-5px;line-height:0;position:absolute;z-index:2;top:14px} .connect_comment_widget_rtl .side_nub{background:transparent url(http://static.ak.fbcdn.net/rsrc.php/v1/zK/r/R95msRfVr6a.gif) no-repeat 0 0} .connect_comment_widget .comment_content{background:white;border-color:#333333 #333333 #283e6c;border-style:solid;border-width:1px 1px 2px;zoom:1} .connect_comment_widget .connect_comment_widget_text{padding:8px 8px 4px} .connect_comment_widget .connect_comment_widget_placeholder_input{width:304px;color:#808080;line-height:16px;height:20px} .connect_comment_widget .connect_comment_widget_placeholder_input_region{padding:8px 8px 5px} .connect_comment_widget .connect_comment_widget_user_pic{display:block;float:left;height:auto;padding:0 5px 0 0;width:50px} .connect_comment_widget .connect_comment_widget_full_input_textarea{height:50px;width:319px} .connect_comment_widget .connect_comment_widget_full_input_region{padding:8px 8px 5px} .connect_comment_widget textarea.connect_comment_widget_disabled{color:#808080} .connect_comment_widget.like_button_dark textarea.connect_comment_widget_disabled{color:#dedede} .connect_comment_widget div.connect_comment_share_preview{padding-left:55px;padding-top:6px} .connect_comment_widget div.connect_comment_widget_button_region{padding:8px 8px 5px;text-align:right;background-color:#f2f2f2;border-top:1px solid #bdc7d8} .connect_comment_widget.like_button_dark div.connect_comment_widget_button_region{background-color:#333;border-top:1px solid #666} .like_button_dark .nub,.like_button_dark .connect_widget_comment_box_upward_nub{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/zL/r/7vbl1usLlV8.gif)} .like_button_dark .side_nub{background:transparent url(http://static.ak.fbcdn.net/rsrc.php/v1/zB/r/Gvy8rtIdNBK.gif) no-repeat 0 0;left:-4px} .connect_comment_widget_rtl.like_button_dark .side_nub{background:transparent url(http://static.ak.fbcdn.net/rsrc.php/v1/zp/r/E-2vs4qfO7d.gif) no-repeat 0 0} .like_button_dark .comment_content{background:#111;border:1px solid #666;border-bottom:2px solid #ccc;color:#ccc} .like_button_dark .connect_comment_widget_placeholder_input{border:1px solid #505050;background:1px solid #505050;color:#fff} .like_button_dark .connect_comment_widget_full_input_textarea,.like_button_dark .connect_comment_widget_placeholder_input{background-color:#000;border-color:#434343;color:#fff} .like_button_dark .connect_comment_widget_full_input_textarea{color:#fff} .like_button_dark a{color:#fff} .connect_comment_widget .connect_comment_widget_title{font-size: 12px;margin-top:-2px} .connect_comment_widget.like_button_dark .connect_comment_widget_title{color:#ccc} .connect_comment_widget .connect_comment_widget_description,.connect_comment_widget .connect_comment_widget_href{font-size: 11px;margin-bottom:6px} .connect_comment_widget .connect_comment_widget_description{color:#000} .connect_comment_widget.like_button_dark .connect_comment_widget_description{color:#ccc} body.transparent_widget{background-color:transparent;overflow:hidden} body.plugin.transparent_widget{overflow-y:hidden} .connect_widget{background-color:transparent} .connect_widget .connect_widget_facebook_favicon{background:url(http://static.ak.fbcdn.net/rsrc.php/v1/z7/r/ql9vukDCc4R.png) no-repeat -1px -47px transparent;display:block;height:14px;padding:0 0 0 0;width:14px;position:absolute;left:-1px} .connect_widget .connect_widget_interactive_area{border-collapse:collapse} .connect_widget td.connect_widget_vertical_center{border-spacing:0;font-size: 11px;line-height:normal;padding:0} .connect_widget td.connect_widget_button_cell{vertical-align:top} .connect_widget td.connect_widget_confirm_cell{padding-top:4px} .connect_widget .connect_button_slider{position:relative;zoom:1} .connect_widget .connect_widget_button_cell .connect_slide_hide_content{overflow:hidden;width:1px;margin-right:0} .connect_widget .connect_slide_hide_content .connect_button_container{margin-left:1px} .button_count .connect_widget_interactive_area .connect_widget_facebook_favicon,.button_count .connect_widget_interactive_area .connect_widget_text{float:left;position:static} body.ie7 .connect_widget a.connect_widget_like_button{float:none} a.connect_widget_like_button{display:block;float:left;border-radius:3px;padding:4px 5px;border:1px solid #000} .button_count a.connect_widget_like_button{padding:2px 4px} a.connect_widget_like_button span{line-height:14px} a.connect_widget_like_button:hover{text-decoration:none} .connect_widget_number_cloud{position:relative;background:#f3f3f3;border:1px solid #d3d3d3;height:24px;padding-top:6px;text-align:center} .like_widget_dark div.connect_widget_number_cloud{background-color:#c7c7c7;border-color:#c7c7c7} div.connect_widget_number_cloud table.connect_widget_number_cloud_summary{margin-left:auto;margin-right:auto} div.connect_widget_number_cloud table.connect_widget_number_cloud_summary td{font-size: 13px} .thumbs_up_icon{width:15px;height:15px;margin-right:2px;background:url(http://static.ak.fbcdn.net/rsrc.php/v1/z7/r/ql9vukDCc4R.png) -1px -32px no-repeat} .like_widget_dark .thumbs_up_icon{background-position:-1px -2px} .like_widget_dark div.connect_widget_number_cloud_extension a{color:#333} div.connect_widget_number_cloud .connect_widget_text{padding-left:0} .connect_widget_number_cloud_nub{position:absolute;z-index:2;height:7px;width:0;bottom:-7px;left:5px} .connect_widget_number_cloud_nub s,.connect_widget_number_cloud_nub i{border:solid transparent;border-left-color:#d3d3d3;border-width:0 0 7px 7px;display:block;position:relative} .connect_widget_number_cloud_nub i{left:1px;top:-9px;border-left-color:#f3f3f3} .like_widget_dark .connect_widget_number_cloud_nub s{border-left-color:#c7c7c7} .like_widget_dark .connect_widget_number_cloud_nub i{display:none} .connect_widget_offscreen{position:absolute;top:-10000px} div.connect_widget_number_cloud_extension{font-size: 11px;height:30px;margin-left:4px;margin-right:4px;margin-top:6px} div.connect_widget_number_cloud_extension_icon{margin-left:2px;margin-top:3px} div.connect_widget_number_cloud_extension_text{border-color:#dedede;border-width:1px 0 0 0;border-style:solid;line-height:11px;margin-top:1px;text-align:center} div.connect_widget_number_cloud_extension_text table{width:100%} div.connect_widget_number_cloud_extension_text td{height:30px;text-align:center;vertical-align:middle} div.connect_widget_number_cloud_extension span.like_reminder{color:#777;font-size: 9px} .like_widget_dark div.connect_widget_number_cloud_extension span.like_reminder{color:#333;font-size: 9px} table.connect_widget_button_count_summary,table.connect_widget_simple_summary{background-color:#eceef5;color:#000;font-size: 11px;height:21px} table.connect_widget_button_count_summary div.thumbs_up{background:url(http://static.ak.fbcdn.net/rsrc.php/v1/z7/r/ql9vukDCc4R.png) no-repeat 3px -32px #eceef5;height:15px;width:18px} td.connect_widget_simple_including div.simple_liked{background:url(http://static.ak.fbcdn.net/rsrc.php/v1/z7/r/ql9vukDCc4R.png) no-repeat 3px -47px #eceef5;height:15px;width:18px} .like_button_simple .connect_widget_like_button .liketext{background:url(http://static.ak.fbcdn.net/rsrc.php/v1/z7/r/ql9vukDCc4R.png) no-repeat 0 -47px #eceef5} .connect_widget_rtl table.connect_widget_button_count_summary div.thumbs_up{background-position:-1px 0} table.connect_widget_button_count_summary div.undo{background-color:#eceef5;height:21px;width:18px} .like_button_dark table.connect_widget_button_count_summary div.undo{background-color:#c7c7c7} table.connect_widget_button_count_summary label.undo_button{margin-left:6px;margin-top:4px} table.connect_widget_button_count_summary div.summary_text{padding-left:3px;padding-right:6px;white-space:nowrap} table.connect_widget_simple_summary div.summary_text{padding-left:3px;padding-right:6px;white-space:nowrap;color:#ccc} .like_button_dark table.connect_widget_button_count_summary,.like_button_dark table.connect_widget_simple_summary{background-color:#c7c7c7} .like_button_dark table.connect_widget_button_count_summary div.thumbs_up{background:transparent url(http://static.ak.fbcdn.net/rsrc.php/v1/z7/r/ql9vukDCc4R.png) no-repeat 3px -3px} .connect_widget_rtl .like_button_dark table.connect_widget_button_count_summary div.thumbs_up{background-position:-1px -3px} .connect_widget_button_count_count{background:#efefef;border:1px solid #c1c1c1;float:left;font-weight:normal;height:14px;margin-left:1px;min-width:15px;padding:1px 2px 1px 2px;text-align:center;line-height:14px} .like_button_dark div.connect_widget_button_count_count{background-color:#c7c7c7;border-color:#c7c7c7} .connect_widget_button_count_nub{float:left;position:relative;z-index:2;height:0;width:5px;top:-5px;left:2px} .connect_widget_button_count_nub s,.connect_widget_button_count_nub i{border:solid transparent;border-right-color:#c7c7c7;border-width:5px 5px 0 0;display:block;position:relative} .connect_widget_button_count_nub i{left:2px;top:-6px;border-right-color:#efefef} .like_button_dark .connect_widget_button_count_nub i{display:none} td.connect_widget_button_count_excluding{padding:0} td.connect_widget_button_count_including,td.connect_widget_simple_including{padding:0} td.connect_widget_button_count_including .connect_widget_button_count_count.noGrayOut{background:transparent url(http://static.ak.fbcdn.net/rsrc.php/v1/zp/r/qDH1xoDhFBF.gif) no-repeat 4px 2px;padding-left:22px;padding-right:4px} .connect_widget_rtl td.connect_widget_button_count_including .connect_widget_button_count.noGrayOut{background:transparent url(http://static.ak.fbcdn.net/rsrc.php/v1/zp/r/qDH1xoDhFBF.gif) no-repeat 4px 2px;padding-right:22px;padding-left:4px} .connect_widget_like_button .vertical{display:block;top:-6px;left:0;margin:0 3px -6px 0;position:relative;padding:3px 4px 4px 3px;border-top:solid 1px;border-bottom:solid 1px} .button_count .connect_widget_like_button .vertical{padding:2px 3px 3px 2px} .connect_widget_like_button .horizontal{height:100%;width:100%;position:absolute;display:block;top:-3px;left:-3px;padding-left:1px;border-left:solid 1px;border-right:solid 1px} .connect_widget_like_button .corner_mask{overflow:hidden;width:3px;height:3px;position:absolute;display:block} .connect_widget_like_button .corner{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/z7/r/ql9vukDCc4R.png);height:6px;width:6px;display:block} .connect_widget_like_button .topleft{top:-6px;left:-3px} .connect_widget_like_button .topleft .corner{margin:0 0} .connect_widget_like_button .topright{top:-6px;right:0} .connect_widget_like_button .topright .corner{margin:0 0 0 -3px} .connect_widget_like_button .bottomright{bottom:0;right:0} .connect_widget_like_button .bottomright .corner{margin:-3px 0 0 -3px} .connect_widget_like_button .bottomleft{bottom:0;left:-3px} .connect_widget_like_button .bottomleft .corner{margin:-3px 0 0 0} .connect_widget_like_button .liketext{background:url(http://static.ak.fbcdn.net/rsrc.php/v1/z7/r/ql9vukDCc4R.png) -1px -33px no-repeat;color:#3b5998;display:block;padding-left:17px;white-space:nowrap} .connect_widget_rtl .connect_button_container .liketext{background:url(http://static.ak.fbcdn.net/rsrc.php/v1/z7/r/ql9vukDCc4R.png) 34px -33px no-repeat} .connect_widget_like_button .liketextwithimage img{margin-bottom:-2px;margin-right:4px;width:13px} .hidden .connect_widget_like_button .liketextwithimage img{height:0;margin:0;padding:0;width:0} .connect_widget_like_button .fbLikeButtonTrackingPixel{display:inline;height:0;width:0} .button_count .like_button_dark .like_button_no_like .liketext,.button_count .connect_widget_like_button .liketext{background-position:-1px -47px} .connect_widget .like_button_no_like .piece,.connect_widget .like_button_no_like{background-color:#eceef5;border-color:#cad4e7} .connect_widget .like_button_no_like .corner{background-position:10px -89px} .connect_widget a.like_button_no_like:hover .piece,.connect_widget a.like_button_no_like:hover{background-color:#ebedf4;border-color:#9dacce} .connect_widget .like_button_no_like:hover .corner{background-position:10px -95px} .connect_widget .like_button_pressed,.connect_widget .like_button_pressed .piece{background-color:#ced4e6;border-color:#94a5ca} .connect_widget .like_button_pressed .corner{background-position:10px 55px} .connect_widget .like_button_like .corner{background-position:10px 49px} .connect_widget .like_button_dark .like_button_no_like,.connect_widget .like_button_dark .like_button_no_like .piece{background-color:#c7c7c7;border-color:#cad4e7} .connect_widget .like_button_dark .like_button_no_like .corner{background-position:10px -217px} .connect_widget .like_button_dark .liketext{color:#333;background-position:-1px -3px} .connect_widget .like_button_dark .like_button_no_like:hover,.connect_widget .like_button_dark .like_button_no_like:hover .piece{background-color:#d9d9d9;border-color:#e9e9e9} .connect_widget .like_button_dark .like_button_no_like:hover .corner{background-position:10px -217px} .connect_widget .like_button_dark .like_button_no_like_pressed,.connect_widget .like_button_dark .like_button_no_like_pressed .piece{background-color:#a8a8a8;border-color:#a8a8a8;border-top-color:#8f8f8f} .connect_widget .like_button_dark .like_button_no_like_pressed .corner{background-position:10px 80px} .connect_widget .like_button_dark .like_button_like .corner{background-position:10px 74px} .connect_widget .connect_text_wrapper{position:relative} .connect_widget div.connect_confirmation_cell{padding:0;margin:0} .connect_widget div.connect_confirmation_cell_like{padding-left:0;position:relative;left:-1px} .connect_widget div.connect_confirmation_cell_no_like{padding-left:7px} .connect_widget .vertical_centering{padding-top:5px} .connect_widget .connect_widget_text{display:block;padding-left:17px;line-height:14px} .button_count .connect_widget_interactive_area .connect_widget_text{padding-left:0;font-weight:bold} .connect_widget .like_button_dark .connect_widget_text,.connect_widget .like_button_dark .connect_widget_confirmation{color:#808080} .connect_widget .like_button_dark .connect_widget_text a{color:#fff} .connect_widget .connect_widget_connect_button{float:left} .connect_widget .connect_bar_widget_interactive_area{float:left} .connect_widget .connect_bar_widget_text_cell{width:400px} .connect_widget .connect_widget_icon{padding:4px 0 4px 4px;vertical-align:middle} .connect_widget a.connect_widget_link_inactive{color:#808080;text-decoration:none;cursor:default} .connect_widget a.connect_widget_error_text{color:#a00;font-weight:bold} .transparent_widget .uiBoxLightblue{background-color:transparent;background-color:rgba(165, 175, 200, .2)} .transparent_widget .uiBoxWhite,.transparent_widget .fbConnectWidgetFooter{background-color:transparent;background-color:rgba(255, 255, 255, .2)} div.connect_widget_comment_box_nub{background:transparent url(http://static.ak.fbcdn.net/rsrc.php/v1/zn/r/vAOEfR4cWQM.gif) no-repeat 0 0;height:12px;left:-6px;position:absolute;top:6px;width:20px;z-index:3} div.connect_widget_comment_box_upward_nub{background:transparent url(http://static.ak.fbcdn.net/rsrc.php/v1/zv/r/agyQHs6yLID.gif) no-repeat 0 0;height:12px;left:5px;position:absolute;top:-6px;width:20px;z-index:3} .connect_widget_rtl div.connect_widget_comment_box_nub{background:transparent url(http://static.ak.fbcdn.net/rsrc.php/v1/zK/r/R95msRfVr6a.gif) no-repeat 0 0;left:-20px} .connect_widget div.connect_widget_comment_box{background-color:#fff;border-color:#000;border-style:solid;border-width:1px 1px 2px 1px;position:relative;z-index:100} .connect_widget div.connect_widget_comment_box.like_button_dark{background-color:#111;color:#ccc;border-color:#666} .connect_widget div.like_button_dark input.connect_widget_comment_textinput{background-color:#666;border-color:#666;color:#dedede} .connect_widget div.connect_widget_header_text{float:left;height:20;overflow:hidden;padding-left:7px;padding-top:3px;width:200} .connect_widget div.connect_widget_cancel_button{cursor:pointer;float:right;padding-right:7px;padding-top:3px} .connect_widget div.connect_widget_comment_text_area_div{padding-left:7px;padding-top:2px} .connect_widget div.connect_widget_comment_area{padding:8px} .connect_widget .connect_widget_comment_textinput{width:325px} .connect_widget .connect_widget_comment_summary{padding:7px 5px 7px 5px} .connect_widget .connect_widget_comment_button{margin-left:-1px} .connect_widget .connect_widget_comment_close_button{margin-left:2px} .connect_widget .like_button_dark .connect_widget_comment_close_button{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/zE/r/htZktl244wt.png);background-repeat:none;opacity:.7} .connect_widget .like_button_dark .connect_widget_comment_close_button:hover{opacity:1} .connect_widget textarea.connect_widget_comment_text_area{height:30px;width:476px} .connect_widget .connect_widget_image{height:30px;width:30px;padding-top:3px;vertical-align:bottom} .connect_widget a.name_tooltip_link{display:block} .connect_widget a.name_tooltip_link .uiTooltipWrap:hover{display:none} .connect_widget .connect_widget_name{text-align:center} .connect_widget .connect_widget_sample_connection{float:left;padding-right:3px;width:30px;padding-top:5px} .connect_widget .connect_widget_user_not_connected{display:none} .connect_widget .connect_bar_widget_sample_connections{float:right} .connect_widget .connect_widget_whats_this{color:#999;font-size: 9px;padding-top:4px} .connect_widget .connect_widget_whats_this a:hover{color:#3b5998;text-decoration:none} .connect_widget .page_stream img{max-width:120px} body.ie7 .connect_widget a.connect_widget_like_button, body.ie8 .connect_widget a.connect_widget_like_button, body.ie9 .connect_widget a.connect_widget_like_button{position:relative;margin:6px 0 0 3px;border:0;background-color:transparent !important;padding:0;overflow:visible} .connect_widget_like_button .liketext{background:url(http://static.ak.fbcdn.net/rsrc.php/v1/z7/r/ql9vukDCc4R.png) -1px -33px no-repeat} .connect_widget a.like_button_no_like:hover .piece, .connect_widget a.like_button_no_like:hover{background-color:#eceef5;border-color:#9dacce} .connect_widget .like_button_like , .connect_widget .like_button_like .piece{background-color:#eee;border-color:#ddd;cursor:default} .connect_widget .like_button_dark .like_button_like , .connect_widget .like_button_dark .like_button_like .piece{background-color:#444;border-color:#555;cursor:default} .connect_widget .like_button_like .corner{background-position:10px -229px} .connect_widget .like_button_dark .like_button_like .corner{background-position:10px -223px} .connect_widget .like_button_like .liketext{background-image:none;clear:right;color:#aaa} .connect_widget .tombstone_cross{background:url(http://static.ak.fbcdn.net/rsrc.php/v1/z7/r/ql9vukDCc4R.png) no-repeat 0 -128px;display:block;float:left;height:12px;margin-right:3px;width:14px;z-index:99} .like_button_no_like .tombstone_cross{display:none} .like_button_like .tombstone_cross{display:block} .connect_widget .like_button_dark .like_button_like .tombstone_cross{background:url(http://static.ak.fbcdn.net/rsrc.php/v1/z7/r/ql9vukDCc4R.png) no-repeat 0 -156px} .connect_widget .like_button_like .tombstone_cross:hover{background-position:0 -235px;cursor:pointer} .connect_widget .like_button_simple .like_button_like .tombstone_cross:hover{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/z7/r/ql9vukDCc4R.png);background-position:0 -128px;cursor:auto;height:12px;margin-left:0;margin-right:3px;margin-top:0;width:14px} .connect_widget .like_button_dark .like_button_like .tombstone_cross:hover{background-position:0 -247px} .connect_widget .connect_button_container .like_button_like .liketext, .connect_widget .connect_widget_connect_button .like_button_like .liketext{padding-left:17px} .connect_widget_comment_box div.connect_widget_comment_box_nub{background:none} .connect_widget .like_button_dark .like_button_like .liketext{color:#666} div.connect_widget div.connect_confirmation_cell_like{padding-left:7px} body.plugin{background:transparent;overflow-y:visible} .pop_container_advanced{background:rgba(82,82,82,0.7);border-radius:8px;padding:10px} .pop_content_old{position:relative} .pop_container{direction:ltr;position:relative;top:10px} .pop_topleft,.pop_topright,.pop_bottomleft,.pop_bottomright{height:10px;width:10px;overflow:hidden;position:absolute} .pop_topleft{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/zv/r/b9B5rP7CZUJ.png);background-repeat:no-repeat;background-position:0 0;left:-10px;top:-10px} .pop_topright{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/zP/r/pbUw18P5OnW.png);background-repeat:no-repeat;background-position:0 0;right:-10px;top:-10px} .pop_bottomleft{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/zc/r/Civ9WLumChT.png);background-repeat:no-repeat;background-position:0 0;bottom:-10px;left:-10px} .pop_bottomright{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/zS/r/fc4z4Z6xzEI.png);background-repeat:no-repeat;background-position:0 0;right:-10px;bottom:-10px} .pop_verticalslab,.pop_horizontalslab{width:100%;height:100%;position:absolute;background:#525252;opacity:.7} .pop_verticalslab{margin:-10px 0 0;padding-bottom:20px} .pop_horizontalslab{margin:0 0 0 -10px;padding-right:20px} .generic_dialog{height:0;left:0;overflow:visible;outline:none;position:absolute;top:0;width:100%;z-index:250} .generic_dialog_popup{height:0;overflow:visible;position:relative;width:465px;margin:auto} .generic_dialog div.dialog_loading{background-color:#f2f2f2;border:1px solid #606060;font-size: 24px;padding:10px} #generic_dialog_overlay{height:100%;position:fixed;top:0;width:100%;z-index:200;background-color:#fff;opacity:0} #generic_dialog_overlay.dark{background-color:#747474;opacity:.5} #generic_dialog_overlay.white{background-color:#fff;opacity:.8} .pop_content{direction:ltr} .pop_dialog_rtl .pop_content{direction:rtl} .pop_content h2.dialog_title{background:#6d84b4;border:1px solid #3b5998;border-bottom:none;color:#fff;font-size: 14px;font-weight:bold;margin:0} .pop_content h2.secure{background:#6d84b4 url(http://static.ak.fbcdn.net/rsrc.php/v1/zu/r/jp8TzrZb6J1.png) 98% no-repeat} .pop_content h2.loading{background:#6d84b4 url(http://static.ak.fbcdn.net/rsrc.php/v1/z-/r/AGUNXgX_Wx3.gif) 98% no-repeat} .pop_content h2.dialog_loading{background:#6d84b4 url(http://static.ak.fbcdn.net/rsrc.php/v1/z-/r/AGUNXgX_Wx3.gif) no-repeat 400px 10px;padding-right:40px} .pop_content h2 span{display:block;padding:5px 10px} .pop_content .dialog_content{background:#fff;border:1px solid #555;border-top-width:0} .pop_content .dialog_body{padding:10px;border-bottom:1px solid #ccc} .omitDialogFooter .pop_content .dialog_body{border-bottom:0} .pop_content .dialog_summary{background:#f2f2f2;padding:8px 10px;border-bottom:1px solid #ccc} .pop_content .dialog_buttons{background:#f2f2f2;padding:8px 10px 8px 10px;position:relative;text-align:right} .pop_content .dialog_buttons_msg{float:left;line-height:17px;padding-top:4px} .pop_content .dialog_footer{background:#F2F2F2 none repeat scroll 0} .full_bleed .pop_content .dialog_body{padding:0} .uiButton,.uiButtonSuppressed:active,.uiButtonSuppressed:focus,.uiButtonSuppressed:hover{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/zl/r/6N9FQPpTHCy.png);background-repeat:no-repeat;background-position:0 0;background-color:#eee;border:1px solid #999;border-bottom-color:#888;box-shadow:0 1px 0 rgba(0, 0, 0, .1);cursor:pointer;display:-moz-inline-box;display:inline-block;font-size: 11px;font-weight:bold;line-height:normal !important;padding:2px 6px;text-align:center;text-decoration:none;vertical-align:top;white-space:nowrap} .uiButton + .uiButton{margin-left:4px} .uiButton:hover{text-decoration:none} .uiButton:active,.uiButtonDepressed{background:#ddd;border-bottom-color:#999;box-shadow:0 1px 0 rgba(0, 0, 0, .05)} .uiButton .img{margin-top:2px;vertical-align:top} .uiButtonLarge .img{margin-top:4px} .uiButton .customimg{margin-top:0} .uiButton .uiButtonText,.uiButton input{background:none;border:0;color:#333;cursor:pointer;display:-moz-inline-box;display:inline-block;font-family:'Lucida Grande', Tahoma, Verdana, Arial, sans-serif;font-size: 11px;font-weight:bold;margin:0;outline:none;padding:1px 0 2px;white-space:nowrap} .uiButtonSpecial{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/zF/r/p13yZ069LVL.png);background-repeat:no-repeat;background-position:0 0;background-color:#69a74e;border-color:#3b6e22 #3b6e22 #2c5115} .uiButtonSpecial:active{background:#609946;border-bottom-color:#3b6e22} .async_saving .uiButton.uiButtonSpecial,.uiButtonSpecial.uiButtonDisabled,.uiButtonSpecial.uiButtonDisabled:active,.uiButtonSpecial.uiButtonDisabled:focus,.uiButtonSpecial.uiButtonDisabled:hover{background:#b4d3a7;border-color:#9db791} .uiButtonConfirm{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/zg/r/wBBYAgOjf8k.png);background-repeat:no-repeat;background-position:0 0;background-color:#5b74a8;border-color:#29447e #29447e #1a356e} .uiButtonConfirm:active{background:#4f6aa3;border-bottom-color:#29447e} .async_saving .uiButton.uiButtonConfirm,.uiButtonConfirm.uiButtonDisabled,.uiButtonConfirm.uiButtonDisabled:active,.uiButtonConfirm.uiButtonDisabled:focus,.uiButtonConfirm.uiButtonDisabled:hover{background:#adbad4;border-color:#94a2bf} .async_saving .uiButton.uiButtonSpecial .uiButtonText,.async_saving .uiButton.uiButtonSpecial input,.async_saving .uiButton.uiButtonConfirm .uiButtonText,.async_saving .uiButton.uiButtonConfirm input,.uiButtonSpecial .uiButtonText,.uiButtonSpecial input,.uiButtonSpecial.uiButtonDisabled .uiButtonText,.uiButtonSpecial.uiButtonDisabled input,.uiButtonConfirm .uiButtonText,.uiButtonConfirm input,.uiButtonConfirm.uiButtonDisabled .uiButtonText,.uiButtonConfirm.uiButtonDisabled input{color:#fff} .async_saving .uiButton,.uiButtonDisabled,.uiButtonDisabled:active,.uiButtonDisabled:focus,.uiButtonDisabled:hover{background:#f2f2f2;border-color:#c8c8c8;box-shadow:none} .async_saving .uiButton .img,.uiButtonDisabled .img{opacity:.5} .async_saving .uiButton .uiButtonText,.async_saving .uiButton input,.uiButtonDisabled .uiButtonText,.uiButtonDisabled input{color:#b8b8b8} .async_saving .uiButton,.async_saving .uiButton .uiButtonText,.async_saving .uiButton input,.uiButtonDepressed,.uiButtonDepressed .uiButtonText,.uiButtonDepressed input,.uiButtonDisabled,.uiButtonDisabled .uiButtonText,.uiButtonDisabled input{cursor:default} .uiButtonLarge,.uiButtonLarge .uiButtonText,.uiButtonLarge input{font-size: 13px} .uiButtonSuppressed{background:none;border-color:transparent;box-shadow:none} .uiButtonNoText .img{margin-left:-1px;margin-right:-1px} .android .uiButton .uiButtonText,.android .uiButton input{padding:3px 0 1px 1px} .uiCloseButton{cursor:pointer;display:-moz-inline-box;display:inline-block;margin:0;padding:0;zoom:1} label.uiCloseButton{overflow:hidden} .uiCloseButton input{cursor:pointer;opacity:0;outline:none;padding:18px} .uiCloseButton{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/z5/r/Yz_2RL5XOEG.png);height:15px;width:15px} .uiCloseButtonSmall{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/za/r/1Be-brvKO2y.png);height:11px;margin-top:1px;width:11px} .uiCloseButtonDark{background-position:left -15px} .uiCloseButtonInverted{background-position:left -15px;background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/zp/r/vQK-sxr3HG0.png)} .uiCloseButton:hover,.uiCloseButton:focus{background-position:left -30px} .uiCloseButton:active{background-position:left -45px} .uiCloseButtonSmallDark{background-position:left -11px} .uiCloseButtonSmallInverted{background-position:left -11px;background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/zn/r/WSQ2wnhSG-F.png)} .uiCloseButtonSmall:hover,.uiCloseButtonSmall:focus{background-position:left -22px} .uiCloseButtonSmall:active{background-position:left -33px} .uiGrid{border:0;border-collapse:collapse;border-spacing:0} .uiGridCalc{width:100%} .uiGrid .vTop{vertical-align:top} .uiGrid .vMid{vertical-align:middle} .uiGrid .vBot{vertical-align:bottom} .uiGrid .hLeft{text-align:left} .uiGrid .hCent{text-align:center} .uiGrid .hRght{text-align:right} .pas{padding:5px} .pam{padding:10px} .pal{padding:20px} .pts{padding-top:5px} .ptm{padding-top:10px} .ptl{padding-top:20px} .prs{padding-right:5px} .prm{padding-right:10px} .prl{padding-right:20px} .pbs{padding-bottom:5px} .pbm{padding-bottom:10px} .pbl{padding-bottom:20px} .pls{padding-left:5px} .plm{padding-left:10px} .pll{padding-left:20px} .phs{padding-left:5px;padding-right:5px} .phm{padding-left:10px;padding-right:10px} .phl{padding-left:20px;padding-right:20px} .pvs{padding-top:5px;padding-bottom:5px} .pvm{padding-top:10px;padding-bottom:10px} .pvl{padding-top:20px;padding-bottom:20px} .mas{margin:5px} .mam{margin:10px} .mal{margin:20px} .mts{margin-top:5px} .mtm{margin-top:10px} .mtl{margin-top:20px} .mrs{margin-right:5px} .mrm{margin-right:10px} .mrl{margin-right:20px} .mbs{margin-bottom:5px} .mbm{margin-bottom:10px} .mbl{margin-bottom:20px} .mls{margin-left:5px} .mlm{margin-left:10px} .mll{margin-left:20px} .mhs{margin-left:5px;margin-right:5px} .mhm{margin-left:10px;margin-right:10px} .mhl{margin-left:20px;margin-right:20px} .mvs{margin-top:5px;margin-bottom:5px} .mvm{margin-top:10px;margin-bottom:10px} .mvl{margin-top:20px;margin-bottom:20px} .fss{font-size: 9px} .fsm{font-size: 11px} .fsl{font-size: 13px} .fsxl{font-size: 16px} .fsxxl{font-size: 18px} .fwn{font-weight:normal} .fwb{font-weight:bold} .fcb{color:#333} .fcg{color:#808080} .uiTooltip{position:relative} .uiTooltipActive,.uiTooltip:active,.uiTooltip:focus,.uiTooltip:hover{outline:none;text-decoration:none;z-index:2} .uiTooltipWrap{display:none} .uiTooltipWrap:hover{visibility:hidden} .uiTooltipActive .uiTooltipWrap:hover{visibility:visible} .uiTooltipText{background-color:#282828;color:#fff !important;display:block;font-size: 11px;line-height:14px;padding:4px 8px;text-align:left} .uiTooltipNoWrap{white-space:nowrap} .uiTooltipActive .uiTooltipWrap,.uiTooltip:active .uiTooltipWrap,.uiTooltip:focus .uiTooltipWrap,.uiTooltip:hover .uiTooltipWrap{background:url(http://static.ak.fbcdn.net/rsrc.php/v1/z1/r/uVR6w3wRHEJ.gif) left bottom no-repeat;bottom:100%;display:block;left:0;padding:0 0 4px;position:absolute} .uiTooltipActive .center,.uiTooltip:active .center,.uiTooltip:focus .center,.uiTooltip:hover .center{left:50%;margin-left:-10px;padding-left:10px} .uiTooltip .center .uiTooltipText{left:-50%;position:relative} .uiTooltip .centerbottom .uiTooltipText{margin-left:18px} .uiTooltipActive .right,.uiTooltip:active .right,.uiTooltip:focus .right,.uiTooltip:hover .right{background-position:right bottom;left:auto;right:0} .uiTooltipActive .middle,.uiTooltip:active .middle,.uiTooltip:focus .middle,.uiTooltip:hover .middle{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/zR/r/kPCE0g_tKJs.gif);background-position:right top;left:auto;margin:-4px 4px 0 0;right:100%;padding:4px;top:50%} .uiTooltip .middle .uiTooltipText{margin-top:-10px} .uiTooltipActive .rightmiddle,.uiTooltip:active .rightmiddle,.uiTooltip:focus .rightmiddle,.uiTooltip:hover .rightmiddle{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/zY/r/_ZWZupdaAgS.gif);background-position:left top;left:100%;margin:-4px 0 0 4px;right:auto} .uiTooltipActive .bottom,.uiTooltip:active .bottom,.uiTooltip:focus .bottom,.uiTooltip:hover .bottom{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v1/zX/r/k2R_CZuPy2I.png);background-position:left top;bottom:auto;padding:4px 0 0;top:100%} .uiTooltipActive .rightbottom,.uiTooltip:active .rightbottom,.uiTooltip:focus .rightbottom,.uiTooltip:hover .rightbottom{background-position:right top} .uiTooltipDisabled:active .uiTooltipWrap,.uiTooltipDisabled:focus .uiTooltipWrap,.uiTooltipDisabled:hover .uiTooltipWrap,.openToggler > .uiTooltip:active .uiTooltipWrap,.openToggler > .uiTooltip:focus .uiTooltipWrap,.openToggler > .uiTooltip:hover .uiTooltipWrap{display:none} .uiProfilePhotoHuge{background-position:center 25%;width:100px;height:100px} .uiProfilePhotoLarge{width:50px;height:50px} .uiProfilePhotoMedium{width:32px;height:32px} .uiProfilePhotoSmall{width:24px;height:24px} #bootloader_tLuYd { height: 42px; } ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=IIeFDzJo603.js Content-Type: application/x-javascript; charset=utf-8; name=IIeFDzJo603.js Content-Location: http://static.ak.fbcdn.net/rsrc.php/v1/yB/r/IIeFDzJo603.js Content-Transfer-Encoding: Base64 LyoxMzA4ODYzNzc5LDE2OTc3NTU1NiovCgppZiAod2luZG93LkNhdmFscnlMb2dn ZXIpIHsgQ2F2YWxyeUxvZ2dlci5zdGFydF9qcyhbIjZ0b1loIl0pOyB9CgppZigh d2luZG93LnNraXBEb21haW5Mb3dlciYmbmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNl ckFnZW50JiZkb2N1bWVudC5kb21haW4udG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58 XC4pZmFjZWJvb2tcLi4qLykmJiEocGFyc2VJbnQoKC9HZWNrb1wvKFswLTldKykv LmV4ZWMobmF2aWdhdG9yLnVzZXJBZ2VudCl8fFtdKS5wb3AoKSwxMCk8PTIwMDYw NTA4KSlkb2N1bWVudC5kb21haW49d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLnJl cGxhY2UoL14uKihmYWNlYm9va1wuLiopJC9pLCckMScpO3dpbmRvdy5vbmxvYWRo b29rcz13aW5kb3cub25sb2FkaG9va3N8fFtdO3dpbmRvdy5vbmxvYWRSZWdpc3Rl cj13aW5kb3cub25sb2FkUmVnaXN0ZXJ8fGZ1bmN0aW9uKGEpe29ubG9hZGhvb2tz LnB1c2goYSk7fTt3aW5kb3cub25hZnRlcmxvYWRob29rcz13aW5kb3cub25hZnRl cmxvYWRob29rc3x8W107d2luZG93Lm9uYWZ0ZXJsb2FkUmVnaXN0ZXI9d2luZG93 Lm9uYWZ0ZXJsb2FkUmVnaXN0ZXJ8fGZ1bmN0aW9uKGEpe29uYWZ0ZXJsb2FkaG9v a3MucHVzaChhKTt9O2Z1bmN0aW9uIHJ1bl9pZl9sb2FkZWQoYSxiKXtyZXR1cm4g d2luZG93LmxvYWRlZCYmYi5jYWxsKGEpO31mdW5jdGlvbiBydW5fd2l0aChiLGEs Yyl7Qm9vdGxvYWRlci5sb2FkQ29tcG9uZW50cyhhLGJpbmQoYixjKSk7cmV0dXJu IGZhbHNlO31mdW5jdGlvbiB3YWl0X2Zvcl9sb2FkKGMsYixlKXtlPWJpbmQoYyxl LGIpO2lmKHdpbmRvdy5sb2FkZWQpcmV0dXJuIGUoKTtzd2l0Y2goKGJ8fGV2ZW50 KS50eXBlKXtjYXNlICdsb2FkJzpjYXNlICdmb2N1cyc6b25hZnRlcmxvYWRSZWdp c3RlcihlKTtyZXR1cm47Y2FzZSAnY2xpY2snOnZhciBkPWMuc3R5bGUsYT1kb2N1 bWVudC5ib2R5LnN0eWxlO2QuY3Vyc29yPWEuY3Vyc29yPSdwcm9ncmVzcyc7b25h ZnRlcmxvYWRSZWdpc3RlcihmdW5jdGlvbigpe2QuY3Vyc29yPWEuY3Vyc29yPScn O2lmKGMudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT0nYScpe2lmKGZhbHNlIT09ZSgp JiZjLmhyZWYpd2luZG93LmxvY2F0aW9uLmhyZWY9Yy5ocmVmO31lbHNlIGlmKGMu Y2xpY2spYy5jbGljaygpO30pO2JyZWFrO31yZXR1cm4gZmFsc2U7fWZ1bmN0aW9u IGJpbmQoYyxiKXt2YXIgYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1 bWVudHMsMik7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9Y3x8KHRoaXM9PXdpbmRv dz9mYWxzZTp0aGlzKSxkPWEuY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5j YWxsKGFyZ3VtZW50cykpO2lmKHR5cGVvZihiKT09InN0cmluZyIpe2lmKGVbYl0p cmV0dXJuIGVbYl0uYXBwbHkoZSxkKTt9ZWxzZSByZXR1cm4gYi5hcHBseShlLGQp O307fXZhciBjdXJyeT1iaW5kKG51bGwsYmluZCxudWxsKTtmdW5jdGlvbiBlbnZf Z2V0KGEpe3JldHVybiB3aW5kb3cuRW52JiZFbnZbYV07fXdpbmRvdy5fX0RFVl9f PXdpbmRvdy5fX0RFVl9ffHwwO3dpbmRvdy5fX3JtPXt9O2RvY3VtZW50LmRvY3Vt ZW50RWxlbWVudC5jbGFzc05hbWU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNs YXNzTmFtZS5yZXBsYWNlKCdub19qcycsJycpOwpmdW5jdGlvbiBoYXNBcnJheU5h dHVyZShhKXtyZXR1cm4gKCEhYSYmKHR5cGVvZiBhPT0nb2JqZWN0J3x8dHlwZW9m IGE9PSdmdW5jdGlvbicpJiYoJ2xlbmd0aCcgaW4gYSkmJiEoJ3NldEludGVydmFs JyBpbiBhKSYmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT09PSJb b2JqZWN0IEFycmF5XSJ8fCgnY2FsbGVlJyBpbiBhKXx8KCdpdGVtJyBpbiBhKSkp O31mdW5jdGlvbiAkQShiKXtpZighaGFzQXJyYXlOYXR1cmUoYikpcmV0dXJuIFti XTtpZihiLml0ZW0pe3ZhciBhPWIubGVuZ3RoLGM9bmV3IEFycmF5KGEpO3doaWxl KGEtLSljW2FdPWJbYV07cmV0dXJuIGM7fXJldHVybiBBcnJheS5wcm90b3R5cGUu c2xpY2UuY2FsbChiKTt9CmZ1bmN0aW9uIGV2YWxfZ2xvYmFsKGMpe2lmKCdzdHJp bmcnIT10eXBlb2YoYykpe3Rocm93IG5ldyBFcnJvcignSlMgc2VudCB0byBldmFs X2dsb2JhbCBpcyBub3QgYSBzdHJpbmcuICBPbmx5IHN0cmluZ3MgJysnYXJlIHBl cm1pdHRlZC4nKTt9ZWxzZSBpZignJz09YylyZXR1cm47dmFyIGQ9ZG9jdW1lbnQu Y3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7ZC50eXBlPSd0ZXh0L2phdmFzY3JpcHQn O3RyeXtkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGMpKTt9 Y2F0Y2goYSl7ZC50ZXh0PWM7fXZhciBiPShkb2N1bWVudC5nZXRFbGVtZW50c0J5 VGFnTmFtZSgiaGVhZCIpWzBdfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpO2Iu YXBwZW5kQ2hpbGQoZCk7Yi5yZW1vdmVDaGlsZChkKTt9CmZ1bmN0aW9uIGNvcHlf cHJvcGVydGllcyhiLGMpe2I9Ynx8e307Yz1jfHx7fTtmb3IodmFyIGEgaW4gYyli W2FdPWNbYV07aWYoYy5oYXNPd25Qcm9wZXJ0eSYmYy5oYXNPd25Qcm9wZXJ0eSgn dG9TdHJpbmcnKSYmKHR5cGVvZiBjLnRvU3RyaW5nIT0ndW5kZWZpbmVkJykmJihi LnRvU3RyaW5nIT09Yy50b1N0cmluZykpYi50b1N0cmluZz1jLnRvU3RyaW5nO3Jl dHVybiBiO31mdW5jdGlvbiBhZGRfcHJvcGVydGllcyhhLGIpe3JldHVybiBjb3B5 X3Byb3BlcnRpZXMod2luZG93W2FdfHwod2luZG93W2FdPXt9KSxiKTt9ZnVuY3Rp b24gaXNfZW1wdHkoYil7aWYoYiBpbnN0YW5jZW9mIEFycmF5KXtyZXR1cm4gYi5s ZW5ndGg9PTA7fWVsc2UgaWYoYiBpbnN0YW5jZW9mIE9iamVjdCl7Zm9yKHZhciBh IGluIGIpcmV0dXJuIGZhbHNlO3JldHVybiB0cnVlO31lbHNlIHJldHVybiAhYjt9 CmlmKCF3aW5kb3cuYXN5bmNfY2FsbGJhY2spd2luZG93LmFzeW5jX2NhbGxiYWNr PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE7fTtmdW5jdGlvbiBBcmJpdGVyKCl7Y29w eV9wcm9wZXJ0aWVzKHRoaXMse19saXN0ZW5lcnM6W10sX2V2ZW50czp7fSxfY2Fs bGJhY2tzOnt9LF9sYXN0X2lkOjEsX2xpc3Rlbjp7fSxfaW5kZXg6e319KTtjb3B5 X3Byb3BlcnRpZXModGhpcyxBcmJpdGVyKTt9Y29weV9wcm9wZXJ0aWVzKEFyYml0 ZXIse1NVQlNDUklCRV9ORVc6J25ldycsU1VCU0NSSUJFX0FMTDonYWxsJyxCRUhB VklPUl9FVkVOVDonZXZlbnQnLEJFSEFWSU9SX1BFUlNJU1RFTlQ6J3BlcnNpc3Rl bnQnLEJFSEFWSU9SX1NUQVRFOidzdGF0ZScsTElWRU1FU1NBR0U6J2xpdmVtZXNz YWdlJyxCT09UTE9BRDonYm9vdGxvYWQnLEZVTkNUSU9OX0VYVEVOU0lPTjonZnVu Y3Rpb25fZXh0JyxDT05URVhUX0NIQU5HRTondWkvY29udGV4dC1jaGFuZ2UnLFBB R0VDQUNIRV9JTlZBTElEQVRFOidwYWdlY2FjaGUvaW52YWxpZGF0ZScsTkVXX05P VElGSUNBVElPTlM6J2NoYXQvbmV3X25vdGlmaWNhdGlvbnMnLExJU1RfRURJVE9S X0xJU1RTX0NIQU5HRUQ6J2xpc3RlZGl0b3IvZnJpZW5kX2xpc3RzX2NoYW5nZWQn LHN1YnNjcmliZTpmdW5jdGlvbihrLGIsaSl7aWYoIWt8fGsubGVuZ3RoPT0wKXJl dHVybiBudWxsO2s9JEEoayk7dmFyIGE9QXJiaXRlci5fZ2V0SW5zdGFuY2UodGhp cyk7YS5fbGlzdGVuZXJzLnB1c2goe2NhbGxiYWNrOmIsdHlwZXM6a30pO3ZhciBo PWEuX2xpc3RlbmVycy5sZW5ndGgtMTtmb3IodmFyIGQ9MDtkPGsubGVuZ3RoO2Qr KylpZihhLl9pbmRleFtrW2RdXSl7YS5faW5kZXhba1tkXV0ucHVzaChoKTt9ZWxz ZSBhLl9pbmRleFtrW2RdXT1baF07aT1pfHxBcmJpdGVyLlNVQlNDUklCRV9BTEw7 aWYoaT09QXJiaXRlci5TVUJTQ1JJQkVfQUxMKXt2YXIgYyxqLGc7Zm9yKHZhciBl PTA7ZTxrLmxlbmd0aDtlKyspe2o9a1tlXTtpZihqIGluIGEuX2V2ZW50cylmb3Io dmFyIGY9MDtmPGEuX2V2ZW50c1tqXS5sZW5ndGg7ZisrKXtjPWEuX2V2ZW50c1tq XVtmXTtnPWIuYXBwbHkobnVsbCxbaixjXSk7aWYoZz09PWZhbHNlKXthLl9ldmVu dHNbal0uc3BsaWNlKGYsMSk7Zi0tO319fX1yZXR1cm4ge3N1YnNjcmliZXJJRDpo fTt9LHVuc3Vic2NyaWJlOmZ1bmN0aW9uKGUpe3ZhciBhPUFyYml0ZXIuX2dldElu c3RhbmNlKHRoaXMpO3ZhciBjPWEuX2xpc3RlbmVyc1tlLnN1YnNjcmliZXJJRF07 Zm9yKHZhciBkPTA7ZDxjLnR5cGVzLmxlbmd0aDtkKyspe3ZhciBmPWMudHlwZXNb ZF07aWYoYS5faW5kZXhbZl0pZm9yKHZhciBiPTA7YjxhLl9pbmRleFtmXS5sZW5n dGg7YisrKWlmKGEuX2luZGV4W2ZdW2JdPT1lLnN1YnNjcmliZXJJRCl7YS5faW5k ZXhbZl0uc3BsaWNlKGIsMSk7aWYoYS5faW5kZXhbZl0ubGVuZ3RoPT0wKWRlbGV0 ZSBhLl9pbmRleFtmXTticmVhazt9fWRlbGV0ZSBhLl9saXN0ZW5lcnNbZS5zdWJz Y3JpYmVySURdO30saW5mb3JtOmZ1bmN0aW9uKGksYyxiKXt2YXIgbD1oYXNBcnJh eU5hdHVyZShpKTt2YXIgaz0kQShpKTt2YXIgYT1BcmJpdGVyLl9nZXRJbnN0YW5j ZSh0aGlzKTt2YXIgaD17fTtiPWJ8fEFyYml0ZXIuQkVIQVZJT1JfRVZFTlQ7Zm9y KHZhciBlPTA7ZTxrLmxlbmd0aDtlKyspe3ZhciBpPWtbZV0sZD1udWxsO2lmKGI9 PUFyYml0ZXIuQkVIQVZJT1JfUEVSU0lTVEVOVCl7ZD1hLl9ldmVudHMubGVuZ3Ro O2lmKCEoaSBpbiBhLl9ldmVudHMpKWEuX2V2ZW50c1tpXT1bXTthLl9ldmVudHNb aV0ucHVzaChjKTthLl9ldmVudHNbaV0uX3N0YXRlZnVsPWZhbHNlO31lbHNlIGlm KGI9PUFyYml0ZXIuQkVIQVZJT1JfU1RBVEUpe2Q9MDthLl9ldmVudHNbaV09W2Nd O2EuX2V2ZW50c1tpXS5fc3RhdGVmdWw9dHJ1ZTt9ZWxzZSBpZihpIGluIGEuX2V2 ZW50cylhLl9ldmVudHNbaV0uX3N0YXRlZnVsPWZhbHNlO3dpbmRvdy5BcmJpdGVy TW9uaXRvciYmQXJiaXRlck1vbml0b3IubG9nKCdldmVudCcsaSxjLGEpO3ZhciBn O2lmKGEuX2luZGV4W2ldKXt2YXIgaj0kQShhLl9pbmRleFtpXSk7Zm9yKHZhciBm PTA7ZjxqLmxlbmd0aDtmKyspe2c9YS5fbGlzdGVuZXJzW2pbZl1dLmNhbGxiYWNr LmFwcGx5KG51bGwsW2ksY10pO2lmKGc9PT1mYWxzZSl7aWYoZCE9PW51bGwpYS5f ZXZlbnRzW2ldLnNwbGljZShkLDEpO2JyZWFrO319fWEuX3VwZGF0ZUNhbGxiYWNr cyhpLGMpO3dpbmRvdy5BcmJpdGVyTW9uaXRvciYmQXJiaXRlck1vbml0b3IubG9n KCdkb25lJyxpLGMsYSk7aFtpXT1nO31yZXR1cm4gbD9oOmhba1swXV07fSxxdWVy eTpmdW5jdGlvbihiKXt2YXIgYT1BcmJpdGVyLl9nZXRJbnN0YW5jZSh0aGlzKTtp ZighKGIgaW4gYS5fZXZlbnRzKSlyZXR1cm4gbnVsbDtpZihhLl9ldmVudHNbYl0u bGVuZ3RoKXJldHVybiBhLl9ldmVudHNbYl1bMF07cmV0dXJuIG51bGw7fSxfaW5z dGFuY2U6bnVsbCxfZ2V0SW5zdGFuY2U6ZnVuY3Rpb24oYSl7aWYoYSBpbnN0YW5j ZW9mIEFyYml0ZXIpcmV0dXJuIGE7aWYoIUFyYml0ZXIuX2luc3RhbmNlKUFyYml0 ZXIuX2luc3RhbmNlPW5ldyBBcmJpdGVyKCk7cmV0dXJuIEFyYml0ZXIuX2luc3Rh bmNlO30scmVnaXN0ZXJDYWxsYmFjazpmdW5jdGlvbihiLGQpe3ZhciBoLGM9MCxh PUFyYml0ZXIuX2dldEluc3RhbmNlKHRoaXMpLGc9ZmFsc2U7aWYodHlwZW9mIGI9 PSdmdW5jdGlvbicpe2g9YS5fbGFzdF9pZDthLl9sYXN0X2lkKys7Zz10cnVlO31l bHNle2lmKCFhLl9jYWxsYmFja3NbYl0pcmV0dXJuIG51bGw7aD1iO31pZihoYXNB cnJheU5hdHVyZShkKSl7dmFyIGk9e307Zm9yKHZhciBmPTA7ZjxkLmxlbmd0aDtm KyspaVtkW2ZdXT0xO2Q9aTt9Zm9yKHZhciBqIGluIGQpe3RyeXtpZihhLnF1ZXJ5 KGopKWNvbnRpbnVlO31jYXRjaChlKXt9Yys9ZFtqXTtpZihhLl9saXN0ZW5bal09 PT11bmRlZmluZWQpYS5fbGlzdGVuW2pdPXt9O2EuX2xpc3RlbltqXVtoXT0oYS5f bGlzdGVuW2pdW2hdfHwwKStkW2pdO31pZihjPT0wJiZnKXtiKCk7cmV0dXJuIG51 bGw7fWlmKCFnKXthLl9jYWxsYmFja3NbaF0uZGVwbnVtKz1jO31lbHNlIGEuX2Nh bGxiYWNrc1toXT17Y2FsbGJhY2s6YXN5bmNfY2FsbGJhY2soYiwnYXJiaXRlcicp LGRlcG51bTpjfTtyZXR1cm4gaDt9LF91cGRhdGVDYWxsYmFja3M6ZnVuY3Rpb24o ZCxjKXtpZihjPT09bnVsbHx8IXRoaXMuX2xpc3RlbltkXSlyZXR1cm47Zm9yKHZh ciBiIGluIHRoaXMuX2xpc3RlbltkXSl7dGhpcy5fbGlzdGVuW2RdW2JdLS07aWYo dGhpcy5fbGlzdGVuW2RdW2JdPD0wKWRlbGV0ZSB0aGlzLl9saXN0ZW5bZF1bYl07 dGhpcy5fY2FsbGJhY2tzW2JdLmRlcG51bS0tO2lmKHRoaXMuX2NhbGxiYWNrc1ti XS5kZXBudW08PTApe3ZhciBhPXRoaXMuX2NhbGxiYWNrc1tiXS5jYWxsYmFjaztk ZWxldGUgdGhpcy5fY2FsbGJhY2tzW2JdO2EoKTt9fX19KTsKRnVuY3Rpb24ucHJv dG90eXBlLmRlZmVyVW50aWw9ZnVuY3Rpb24oYSxoLGIsaSl7dmFyIGY9YSgpO2lm KGYpe3RoaXMoZik7cmV0dXJuO312YXIgZT10aGlzLGQ9bnVsbCxnPSgrbmV3IERh dGUoKSk7dmFyIGM9ZnVuY3Rpb24oKXtmPWEoKTtpZighZilpZihoJiYobmV3IERh dGUoKS1nKT49aCl7aSYmaSgpO31lbHNlIHJldHVybjtkJiZjbGVhckludGVydmFs KGQpO2UoZik7fTtkPXNldEludGVydmFsKGMsMjAsYik7cmV0dXJuIGQ7fTt2YXIg Qm9vdGxvYWRlcj13aW5kb3cuQm9vdGxvYWRlcj0od2luZG93LkJvb3Rsb2FkZXIm JndpbmRvdy5Cb290bG9hZGVyLnJlYWxCb290bG9hZGVyKT93aW5kb3cuQm9vdGxv YWRlcjooZnVuY3Rpb24oYSl7cmV0dXJuIHtyZWFsQm9vdGxvYWRlcjp0cnVlLGNv bmZpZ3VyZVBhZ2U6ZnVuY3Rpb24oYil7dmFyIGg9e307dmFyIGc9dGhpcy5yZXNv bHZlUmVzb3VyY2VzKGIpO2Zvcih2YXIgYz0wO2M8Zy5sZW5ndGg7YysrKXtoW2db Y10uc3JjXT1nW2NdO3RoaXMucmVxdWVzdGVkKGdbY10ubmFtZSk7dGhpcy5fc3Rh cnRDU1NQb2xsKGdbY10ubmFtZSk7fXZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRz QnlUYWdOYW1lKCdsaW5rJyk7Zm9yKHZhciBjPTA7YzxlLmxlbmd0aDsrK2Mpe2lm KGVbY10ucmVsIT0nc3R5bGVzaGVldCcpY29udGludWU7Zm9yKHZhciBkIGluIGgp aWYoZVtjXS5ocmVmLmluZGV4T2YoZCkhPT0tMSl7dmFyIGY9aFtkXS5uYW1lO3Ro aXMuX2Nzc0xpbmtNYXBbZl09e2xpbms6ZVtjXX07aWYoaFtkXS5wZXJtYW5lbnQp dGhpcy5fcGVybWFuZW50W2ZdPXRydWU7ZGVsZXRlIGhbZF07YnJlYWs7fX19LGxv YWRDb21wb25lbnRzOmZ1bmN0aW9uKGQsYil7ZD0kQShkKTt2YXIgZz1bXTtmb3Io dmFyIGU9MDtlPGQubGVuZ3RoOysrZSl7aWYoIWRbZV0pY29udGludWU7dmFyIGM9 dGhpcy5fY29tcG9uZW50TWFwW2RbZV1dO2lmKCEhYylmb3IodmFyIGY9MDtmPGMu bGVuZ3RoOysrZilnLnB1c2goY1tmXSk7fXJldHVybiB0aGlzLmxvYWRSZXNvdXJj ZXMoZyxiKTt9LGxvYWRSZXNvdXJjZXM6ZnVuY3Rpb24oaCxiLGcsayl7aD1Cb290 bG9hZGVyLnJlc29sdmVSZXNvdXJjZXMoJEEoaCkpO2lmKGcpe3ZhciBlPXt9O2Zv cih2YXIgYz0wO2M8aC5sZW5ndGg7KytjKWVbaFtjXS5uYW1lXT10cnVlO2Zvcih2 YXIgZCBpbiB0aGlzLl9yZXF1ZXN0ZWQpaWYoIShkIGluIHRoaXMuX3Blcm1hbmVu dCkmJiEoZCBpbiBlKSYmIShkIGluIHRoaXMuX2Vhcmx5UmVzb3VyY2VzKSl0aGlz Ll91bmxvYWRSZXNvdXJjZShkKTt0aGlzLl9lYXJseVJlc291cmNlcz17fTt9dmFy IGw9W107dmFyIGY9W107Zm9yKHZhciBjPTA7YzxoLmxlbmd0aDsrK2Mpe3ZhciBp PWhbY107aWYoaS5wZXJtYW5lbnQpdGhpcy5fcGVybWFuZW50W2kubmFtZV09dHJ1 ZTt2YXIgaj1BcmJpdGVyLkJPT1RMT0FEKycvJytpLm5hbWU7aWYoQXJiaXRlci5x dWVyeShqKSE9PW51bGwpY29udGludWU7aWYoIWkubm9uYmxvY2tpbmcpZi5wdXNo KGopO2lmKCF0aGlzLl9yZXF1ZXN0ZWRbaS5uYW1lXSl7dGhpcy5yZXF1ZXN0ZWQo aS5uYW1lKTtsLnB1c2goaSk7d2luZG93LkNhdmFscnlMb2dnZXImJkNhdmFscnlM b2dnZXIuZ2V0SW5zdGFuY2UoKS5tZWFzdXJlUmVzb3VyY2VzKGksayk7fX1pZihi KWI9QXJiaXRlci5yZWdpc3RlckNhbGxiYWNrKGIsZik7Zm9yKHZhciBjPTA7Yzxs Lmxlbmd0aDsrK2MpdGhpcy5yZXF1ZXN0UmVzb3VyY2UobFtjXS50eXBlLGxbY10u c3JjLGxbY10ubmFtZSk7cmV0dXJuIGI7fSxyZXF1ZXN0UmVzb3VyY2U6ZnVuY3Rp b24oayxoLGYpe3ZhciBjPXRoaXMuZ2V0SGFyZHBvaW50KCk7aWYoaz09J2pzJyl7 dmFyIGc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7Zy5zcmM9aDtn LnR5cGU9J3RleHQvamF2YXNjcmlwdCc7Zy5hc3luYz10cnVlO3ZhciBiPWZ1bmN0 aW9uKCl7Qm9vdGxvYWRlci5kb25lKFtmXSk7fTtnLm9ubG9hZD1nLm9uZXJyb3I9 YjtnLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKHRoaXMucmVhZHlT dGF0ZSBpbiB7bG9hZGVkOjEsY29tcGxldGU6MX0pYigpO307Yy5hcHBlbmRDaGls ZChnKTt9ZWxzZSBpZihrPT0nY3NzJyl7aWYoZG9jdW1lbnQuY3JlYXRlU3R5bGVT aGVldCl7dmFyIGk9dGhpcy5fc3R5bGVUYWdzLGo9LTE7Zm9yKHZhciBkPTA7ZDxp Lmxlbmd0aDtkKyspaWYoaVtkXS5pbXBvcnRzLmxlbmd0aDwyNSl7aj1kO2JyZWFr O31pZihqPT0tMSl7aS5wdXNoKGRvY3VtZW50LmNyZWF0ZVN0eWxlU2hlZXQoKSk7 aj1pLmxlbmd0aC0xO31pW2pdLmFkZEltcG9ydChoKTt0aGlzLl9jc3NMaW5rTWFw W2ZdPXt0YWdJZHg6aixocmVmOmh9O31lbHNle3ZhciBlPWRvY3VtZW50LmNyZWF0 ZUVsZW1lbnQoJ2xpbmsnKTtlLnJlbD0ic3R5bGVzaGVldCI7ZS50eXBlPSJ0ZXh0 L2NzcyI7ZS5tZWRpYT0iYWxsIjtlLmhyZWY9aDt0aGlzLl9jc3NMaW5rTWFwW2Zd PXtsaW5rOmV9O2MuYXBwZW5kQ2hpbGQoZSk7fXRoaXMuX3N0YXJ0Q1NTUG9sbChm KTt9fSxfYWN0aXZlQ1NTUG9sbHM6e30sX2V4cGlyZVRpbWU6bnVsbCxfcnVuQ1NT UG9sbHM6ZnVuY3Rpb24oKXt2YXIgZz0oK25ldyBEYXRlKCkpO2lmKGc+PXRoaXMu X2V4cGlyZVRpbWUpe2lmKHdpbmRvdy5zZW5kX2Vycm9yX3NpZ25hbClpZihNYXRo LnJhbmRvbSgpPC4wMSlzZW5kX2Vycm9yX3NpZ25hbCgnanNfdGltZW91dF9hbmRf ZXhjZXB0aW9uJywnMDAwMDE6ZXJyb3I6Q1NTIHRpbWVvdXQuJyk7dmFyIGQ9W107 Zm9yKHZhciBmIGluIHRoaXMuX2FjdGl2ZUNTU1BvbGxzKWQucHVzaChmKTtCb290 bG9hZGVyLmRvbmUoZCx0cnVlKTt0aGlzLl9hY3RpdmVDU1NQb2xscz17fTt9ZWxz ZXt2YXIgZT1Cb290bG9hZGVyLl9DU1NfRVhQRUNURURfSEVJR0hUO3ZhciBiO3Zh ciBkPVtdO2Zvcih2YXIgZiBpbiB0aGlzLl9hY3RpdmVDU1NQb2xscyl7dmFyIGM9 dGhpcy5fYWN0aXZlQ1NTUG9sbHNbZl07dmFyIGg9Yy5vZmZzZXRIZWlnaHQ9PWV8 fGMuY3VycmVudFN0eWxlJiZjLmN1cnJlbnRTdHlsZS5oZWlnaHQ9PWUrJ3B4J3x8 d2luZG93LmdldENvbXB1dGVkU3R5bGUmJihiPWRvY3VtZW50LmRlZmF1bHRWaWV3 LmdldENvbXB1dGVkU3R5bGUoYyxudWxsKSkmJmIuZ2V0UHJvcGVydHlWYWx1ZSgn aGVpZ2h0Jyk9PWUrJ3B4JztpZihoKXtkLnB1c2goZik7Yy5wYXJlbnROb2RlLnJl bW92ZUNoaWxkKGMpO2RlbGV0ZSB0aGlzLl9hY3RpdmVDU1NQb2xsc1tmXTt9fWlm KCFpc19lbXB0eShkKSl7Qm9vdGxvYWRlci5kb25lKGQsdHJ1ZSk7dGhpcy5fZXhw aXJlVGltZT1nK0Jvb3Rsb2FkZXIuX0NTU19QT0xMX0VYUElSQVRJT047fX1yZXR1 cm4gaXNfZW1wdHkodGhpcy5fYWN0aXZlQ1NTUG9sbHMpO30sX3N0YXJ0Q1NTUG9s bDpmdW5jdGlvbihkKXt2YXIgYz0nYm9vdGxvYWRlcl8nK2QucmVwbGFjZSgvW15h LXowLTldL2lnLCdfJyk7dmFyIGI9YmFnb2Zob2xkaW5nO2JpbmQodGhpcyxmdW5j dGlvbigpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2UuaWQ9 Yztkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpO3RoaXMuX2V4cGlyZVRpbWU9 KCtuZXcgRGF0ZSgpKStCb290bG9hZGVyLl9DU1NfUE9MTF9FWFBJUkFUSU9OO3Zh ciBnPWlzX2VtcHR5KHRoaXMuX2FjdGl2ZUNTU1BvbGxzKTt0aGlzLl9hY3RpdmVD U1NQb2xsc1tkXT1lO2lmKGcpdmFyIGY9c2V0SW50ZXJ2YWwoYmluZCh0aGlzLGZ1 bmN0aW9uKCl7aWYodGhpcy5fcnVuQ1NTUG9sbHMoKSlmJiZjbGVhckludGVydmFs KGYpO30pLDIwLGZhbHNlKTt9KS5kZWZlclVudGlsKGZ1bmN0aW9uKCl7cmV0dXJu IGRvY3VtZW50LmJvZHk7fSw1MDAwLGZhbHNlLGIuY3VycnkoIlN0aWxsIG5vIERP TSIpKTt9LGRvbmU6ZnVuY3Rpb24oZixjKXt2YXIgZz0oYSYmYS5fcHJlbG9hZGVk KXx8W107KGF8fHt9KS5fcHJlbG9hZGVkPVtdO2Y9Zi5jb25jYXQoZyk7dGhpcy5y ZXF1ZXN0ZWQoZik7aWYoIWMpe3ZhciBlPXtzZW5kZXI6dGhpc307QXJiaXRlci5p bmZvcm0oQXJiaXRlci5CT09UTE9BRCxlLEFyYml0ZXIuQkVIQVZJT1JfRVZFTlQp O31mb3IodmFyIGI9MDtiPGYubGVuZ3RoOysrYil7dmFyIGQ9ZltiXTtBcmJpdGVy LmluZm9ybShBcmJpdGVyLkJPT1RMT0FEKycvJytkLHRydWUsQXJiaXRlci5CRUhB VklPUl9TVEFURSk7fX0scmVxdWVzdGVkOmZ1bmN0aW9uKGMpe2M9JEEoYyk7Zm9y KHZhciBiPTA7YjxjLmxlbmd0aDsrK2IpdGhpcy5fcmVxdWVzdGVkW2NbYl1dPXRy dWU7fSxlbmFibGVCb290bG9hZDpmdW5jdGlvbihiKXtmb3IodmFyIGMgaW4gYilp ZighdGhpcy5fY29tcG9uZW50TWFwW2NdKXRoaXMuX2NvbXBvbmVudE1hcFtjXT1i W2NdO30sX3VubG9hZFJlc291cmNlOmZ1bmN0aW9uKGUpe2lmKGUgaW4gdGhpcy5f Y3NzTGlua01hcCl7dmFyIGM9dGhpcy5fY3NzTGlua01hcFtlXSxkPWMubGluaztp ZihkKXtkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZCk7fWVsc2V7dmFyIGY9dGhp cy5fc3R5bGVUYWdzW2MudGFnSWR4XTtmb3IodmFyIGI9MDtiPGYuaW1wb3J0cy5s ZW5ndGg7YisrKWlmKGYuaW1wb3J0c1tiXS5ocmVmPT1jLmhyZWYpe2YucmVtb3Zl SW1wb3J0KGIpO2JyZWFrO319ZGVsZXRlIHRoaXMuX2Nzc0xpbmtNYXBbZV07ZGVs ZXRlIHRoaXMuX3JlcXVlc3RlZFtlXTtBcmJpdGVyLmluZm9ybShBcmJpdGVyLkJP T1RMT0FEKycvJytlLG51bGwsQXJiaXRlci5CRUhBVklPUl9TVEFURSk7fX0sZ2V0 SGFyZHBvaW50OmZ1bmN0aW9uKCl7aWYoIXRoaXMuX2hhcmRwb2ludCl7dmFyIGMs Yj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpO2lmKGIubGVu Z3RoKXtjPWJbMF07fWVsc2UgYz1kb2N1bWVudC5ib2R5O3RoaXMuX2hhcmRwb2lu dD1jO31yZXR1cm4gdGhpcy5faGFyZHBvaW50O30sc2V0UmVzb3VyY2VNYXA6ZnVu Y3Rpb24oYyl7aWYoIWMpcmV0dXJuO2Zvcih2YXIgYiBpbiBjKXtpZighY1tiXS5u YW1lKWNbYl0ubmFtZT1iO3RoaXMuX3Jlc291cmNlc1tiXT1jW2JdO319LHJlc29s dmVSZXNvdXJjZXM6ZnVuY3Rpb24oZSxiKXtpZighZSlyZXR1cm47dmFyIGQ9bmV3 IEFycmF5KGUubGVuZ3RoKTtmb3IodmFyIGM9MDtjPGUubGVuZ3RoOysrYylpZigh ZVtjXS50eXBlJiZlW2NdIGluIHRoaXMuX3Jlc291cmNlcyl7ZFtjXT10aGlzLl9y ZXNvdXJjZXNbZVtjXV07aWYoYiYmKGIgaW4gZFtjXSkpZFtjXT1kW2NdW2JdO31l bHNlIGRbY109ZVtjXTtyZXR1cm4gZDt9LGxvYWRFYXJseVJlc291cmNlczpmdW5j dGlvbihkKXt0aGlzLnNldFJlc291cmNlTWFwKGQpO3ZhciBjPVtdO2Zvcih2YXIg YiBpbiBkKWMucHVzaCh0aGlzLl9yZXNvdXJjZXNbYl0pO3RoaXMubG9hZFJlc291 cmNlcyhjKTtmb3IodmFyIGIgaW4gZCl7dmFyIGU9dGhpcy5fcmVzb3VyY2VzW2Jd O2lmKCFlLnBlcm1hbmVudCl0aGlzLl9lYXJseVJlc291cmNlc1tlLm5hbWVdPWU7 fX0sX3JlcXVlc3RlZDp7fSxfcGVybWFuZW50Ont9LF9jb21wb25lbnRNYXA6e30s X2Nzc0xpbmtNYXA6e30sX3N0eWxlVGFnczpbXSxfaGFyZHBvaW50Om51bGwsX3Jl c291cmNlczp7fSxfZWFybHlSZXNvdXJjZXM6e30sX0NTU19QT0xMX0VYUElSQVRJ T046NTAwMCxfQ1NTX0VYUEVDVEVEX0hFSUdIVDo0Mn07fSkod2luZG93LkJvb3Rs b2FkZXIpOwooZnVuY3Rpb24oKXtpZih3aW5kb3chPXdpbmRvdy50b3ApcmV0dXJu O3ZhciBqPSdfZV8nLGs9KHdpbmRvdy5uYW1lfHwnJykudG9TdHJpbmcoKTtrPShr Lmxlbmd0aD09NyYmaj09ay5zdWJzdHIoMCwzKSk/ay5zdWJzdHIoMyk6KHdpbmRv dy5uYW1lPWord2luZG93Ll9FYWdsZUV5ZVNlZWQpLnN1YnN0cigzKTt2YXIgaD1q K2srJ18nLGY9bmV3IERhdGUoK25ldyBEYXRlKCkrNjA0ODAwMDAwKS50b0dNVFN0 cmluZygpLGQ9d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLnJlcGxhY2UoL14uKihm YWNlYm9va1wuLiopJC9pLCckMScpLGU9JzsgZXhwaXJlcz0nK2YrJztwYXRoPS87 IGRvbWFpbj0nK2QsYz0wLGc9ZmFsc2UsbD1mYWxzZSxpPVtdO2Z1bmN0aW9uIGIo bSl7cmV0dXJuIGgrKGMrKykrJz0nK2VuY29kZVVSSUNvbXBvbmVudChtKStlO31m dW5jdGlvbiBhKG8pe3ZhciBwPWRvY3VtZW50LmNvb2tpZS5zZWFyY2goaik+PTA7 d2hpbGUoaS5sZW5ndGg+MCl7dmFyIHE9YihpWzBdKTtpZihwJiYoKGRvY3VtZW50 LmNvb2tpZS5sZW5ndGgrcS5sZW5ndGgpPjM1MDB8fGRvY3VtZW50LmNvb2tpZS5z cGxpdCgnOycpLmxlbmd0aD4xOSkpYnJlYWs7ZG9jdW1lbnQuY29va2llPXE7cD10 cnVlO2kuc2hpZnQoKTt9aWYoISFvfHwhZyYmcCYmKChkb2N1bWVudC5jb29raWUu bGVuZ3RoPjI1MDB8fGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpLmxlbmd0aD4x NSkpJiYobHx8KHdpbmRvdy5BcmJpdGVyJiZ3aW5kb3cuT25sb2FkRXZlbnQmJkFy Yml0ZXIucXVlcnkoT25sb2FkRXZlbnQuT05MT0FEKSkpKXt2YXIgbj1uZXcgSW1h Z2UoKTtnPXRydWU7bi5vbmxvYWQ9ZnVuY3Rpb24oKXtnPWZhbHNlO2EoKTt9O3Zh ciBtPXdpbmRvdy5fRWFnbGVFeWVEb21haW58fCh3aW5kb3cuRW52JiZFbnYudHJh Y2tpbmdfZG9tYWluKXx8Jyc7bi5zcmM9bSsnL2FqYXgvbmVjdGFyLnBocD9hc3lu Y1NpZ25hbD0nKyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMTAwMDApKzEpKycm JysoIW8/Jyc6J3M9JykrKCtuZXcgRGF0ZSgpKTt9fXdpbmRvdy5FYWdsZUV5ZT17 bG9nOmZ1bmN0aW9uKG8sbSxuKXtpZih3aW5kb3cuRW52JiZFbnYubm9fY29va2ll cylyZXR1cm47dmFyIHA9W2ssK25ldyBEYXRlKCksb10uY29uY2F0KG0pO3AucHVz aChwLmxlbmd0aCk7Qm9vdGxvYWRlci5sb2FkQ29tcG9uZW50cygnanNvbicsZnVu Y3Rpb24oKXt2YXIgcT1KU09OLnN0cmluZ2lmeShwKTtpZighbil7aS5wdXNoKHEp O31lbHNlIGRvY3VtZW50LmNvb2tpZT1iKHEpO2Eobik7fSk7fSxjcmVhdGVMb2dn ZXI6ZnVuY3Rpb24obyxtKXttPW09PXVuZGVmaW5lZD8xMDA6bTt2YXIgbj1mdW5j dGlvbihwLHEpe2lmKG4uZW5hYmxlZClFYWdsZUV5ZS5sb2cobyxwLHEpO307bi5l bmFibGVkPWZhbHNlO0Jvb3Rsb2FkZXIubG9hZENvbXBvbmVudHMoJ3N0cmluZy1l eHRlbnNpb25zJyxmdW5jdGlvbigpe24uX2tleT0oKHdpbmRvdy5FbnYmJkVudi51 c2VyKXx8TWF0aC5yYW5kb20oKSkrbztuLmVuYWJsZWQ9KG4uX2tleS5oYXNoMzIo KSU2NTUzNS82NTUzNSk8PW07fSk7cmV0dXJuIG47fSxsb2FkZWQ6ZnVuY3Rpb24o KXtsPXRydWU7fX07fSkoKTsKZnVuY3Rpb24gc2V0X3VlX2Nvb2tpZShhKXtpZigh KHdpbmRvdy5FbnYmJkVudi5ub19jb29raWVzKSlkb2N1bWVudC5jb29raWU9ImFj dD0iK2VuY29kZVVSSUNvbXBvbmVudChhKSsiOyBwYXRoPS87IGRvbWFpbj0iK3dp bmRvdy5sb2NhdGlvbi5ob3N0bmFtZS5yZXBsYWNlKC9eLiooXC5mYWNlYm9va1wu LiopJC9pLCckMScpO312YXIgdXNlcl9hY3Rpb249KGZ1bmN0aW9uKCl7dmFyIGw9 KCF3aW5kb3cuQXJiaXRlck1vbml0b3IpPydyJzonYScsbj0wLG0sZSxmLG89MCxr LGksYixjLGg9WzAsMCwwLDBdLGQ9ZnVuY3Rpb24oKXtpZighIWkpe3ZhciBxPXtw cm9maWxlX21pbmlmZWVkOjEsaW5mb190YWI6MSxnYl9jb250ZW50X2FuZF90b29s YmFyOjEsZ2JfbXVmZmluX2FyZWE6MSxlZ286MSxib29rbWFya3NfbWVudToxLGpl d2VsQm94Tm90aWY6MSxqZXdlbE5vdGlmOjEsQmVlcGVyQm94OjEsbmF2U2VhcmNo OjF9O2Zvcih2YXIgcD1pO3AmJnAhPWRvY3VtZW50LmJvZHk7cD1wLnBhcmVudE5v ZGUpe2lmKCFwLmlkfHx0eXBlb2YgcC5pZCE9PSdzdHJpbmcnKWNvbnRpbnVlO2lm KHAuaWQuc3Vic3RyKDAsOCk9PSdwYWdlbGV0XycpcmV0dXJuIHAuaWQuc3Vic3Ry KDgpO2lmKHAuaWQuc3Vic3RyKDAsOCk9PSdib3hfYXBwXycpcmV0dXJuIHAuaWQ7 aWYocVtwLmlkXSlyZXR1cm4gcC5pZDt9fXJldHVybiAnLSc7fSxnPWZ1bmN0aW9u KHEpe2lmKCFnZSgnY29udGVudCcpKXJldHVybiBbMCwwLDAsMF07dmFyIHA9JCgn Y29udGVudCcpO3ZhciByPXdpbmRvdy5WZWN0b3IyP1ZlY3RvcjIuZ2V0RXZlbnRQ b3NpdGlvbihxKTp7eDowLHk6MH07cmV0dXJuIFtyLngsci55LHAub2Zmc2V0TGVm dCxwLmNsaWVudFdpZHRoXTt9LGo9ZnVuY3Rpb24oKXtuKys7dmFyIHE9bysnLycr bjtzZXRfdWVfY29va2llKHEpO3ZhciBwPXt9O2lmKHdpbmRvdy5jb2xsZWN0X2Rh dGFfYXR0cmlicyl7cD1jb2xsZWN0X2RhdGFfYXR0cmlicyhpLFsnZnQnLCdndCdd KTtjb3B5X3Byb3BlcnRpZXMocC5mdCxjLmZ0fHx7fSk7Y29weV9wcm9wZXJ0aWVz KHAuZ3QsYy5ndHx8e30pO31pZihsPT0nYScpe0FyYml0ZXJNb25pdG9yLmluaXRV RShxKTtmPUFyYml0ZXJNb25pdG9yLmdldEludGVyblJlZihpKTt9d2luZG93LkVh Z2xlRXllJiZFYWdsZUV5ZS5sb2coJ2FjdCcsW28sbixlfHwnLScsYixtfHwnLScs Znx8ZChpKSxsLHdpbmRvdy5VUkk/VVJJLmdldFJlcXVlc3RVUkkodHJ1ZSx0cnVl KS5nZXRVbnF1YWxpZmllZFVSSSgpLnRvU3RyaW5nKCk6bG9jYXRpb24ucGF0aG5h bWUrbG9jYXRpb24uc2VhcmNoK2xvY2F0aW9uLmhhc2gscF0uY29uY2F0KGgpKTtr PXRydWU7fSxhPWZ1bmN0aW9uKHQscCxyLHMscSl7aWYoISFyKXttPXIudHlwZTtp ZihtPT0nY2xpY2snJiZnZSgnY29udGVudCcpKWg9ZyhyKTt2YXIgcz0wO3IuY3Ry bEtleSYmKHMrPTEpO3Iuc2hpZnRLZXkmJihzKz0yKTtyLmFsdEtleSYmKHMrPTQp O3IubWV0YUtleSYmKHMrPTgpO2lmKHMpbSs9czt9aWYoIXQmJnIpdD1yLmdldFRh cmdldCgpO2lmKCEhdCl7ZT0odC5nZXRBdHRyaWJ1dGUmJih0LmdldEF0dHJpYnV0 ZSgnYWpheGlmeScpfHx0LmdldEF0dHJpYnV0ZSgnZGF0YS1lbmRwb2ludCcpKXx8 dC5hY3Rpb258fHQuaHJlZnx8dC5uYW1lKTtpPXQ7fWlmKCEhcCYmIWIpYj1wO2lm KCEhcSljPXE7aWYocz09J0ZPUkNFJ3x8ZSlqKCk7fTtyZXR1cm4gZnVuY3Rpb24o dCxwLHIscyxxKXt2YXIgdT0oK25ldyBEYXRlKCkpO0Jvb3Rsb2FkZXIubG9hZENv bXBvbmVudHMoJ2RvbS1jb2xsZWN0JyxmdW5jdGlvbigpe2lmKHUtbzwxMCl7IWsm JmEodCxwLHIscyxxKTtyZXR1cm47fWlmKHM9PSdJTkRJUkVDVCcpcmV0dXJuO209 ZT1mPWk9Yj1udWxsO2M9e307az1mYWxzZTtvPXU7YSh0LHAscixzLHEpO30pO307 fSkoKTsKZ2U9JD1mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PSdzdHJpbmcn P2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpOmE7fTsKQ1NTPXdpbmRvdy5DU1N8 fHtoYXNDbGFzczpmdW5jdGlvbihiLGEpe2I9JChiKTtyZXR1cm4gKCcgJytiLmNs YXNzTmFtZSsnICcpLmluZGV4T2YoJyAnK2ErJyAnKT4tMTt9LGFkZENsYXNzOmZ1 bmN0aW9uKGIsYSl7Yj0kKGIpO2lmKGEmJiFDU1MuaGFzQ2xhc3MoYixhKSliLmNs YXNzTmFtZT1iLmNsYXNzTmFtZSsnICcrYTtyZXR1cm4gYjt9LHJlbW92ZUNsYXNz OmZ1bmN0aW9uKGIsYSl7Yj0kKGIpO2IuY2xhc3NOYW1lPWIuY2xhc3NOYW1lLnJl cGxhY2UobmV3IFJlZ0V4cCgnKF58XFxzKScrYSsnKD86XFxzfCQpJywnZycpLCck MScpO3JldHVybiBiO30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYixhKXtyZXR1cm4g Q1NTLmNvbmRpdGlvbkNsYXNzKGIsYSwhQ1NTLmhhc0NsYXNzKGIsYSkpO30sY29u ZGl0aW9uQ2xhc3M6ZnVuY3Rpb24oYyxiLGEpe3JldHVybiAoYT9DU1MuYWRkQ2xh c3M6Q1NTLnJlbW92ZUNsYXNzKShjLGIpO30sc2hvdzpmdW5jdGlvbihhKXtDU1Mu cmVtb3ZlQ2xhc3MoYSwnaGlkZGVuX2VsZW0nKTt9LGhpZGU6ZnVuY3Rpb24oYSl7 Q1NTLmFkZENsYXNzKGEsJ2hpZGRlbl9lbGVtJyk7fSxjb25kaXRpb25TaG93OmZ1 bmN0aW9uKGIsYSl7Q1NTLmNvbmRpdGlvbkNsYXNzKGIsJ2hpZGRlbl9lbGVtJywh YSk7fX07CnZhciBQYXJlbnQ9e2J5VGFnOmZ1bmN0aW9uKGEsYil7Yj1iLnRvVXBw ZXJDYXNlKCk7d2hpbGUoYSYmYS5ub2RlTmFtZSE9YilhPWEucGFyZW50Tm9kZTty ZXR1cm4gYTt9LGJ5Q2xhc3M6ZnVuY3Rpb24oYixhKXt3aGlsZShiJiYhQ1NTLmhh c0NsYXNzKGIsYSkpYj1iLnBhcmVudE5vZGU7cmV0dXJuIGI7fSxieUF0dHJpYnV0 ZTpmdW5jdGlvbihiLGEpe3doaWxlKGImJighYi5nZXRBdHRyaWJ1dGV8fCFiLmdl dEF0dHJpYnV0ZShhKSkpYj1iLnBhcmVudE5vZGU7cmV0dXJuIGI7fX07CmZ1bmN0 aW9uIHRyYWNrUmVmZXJyZXIoYSxlKXthPVBhcmVudC5ieUF0dHJpYnV0ZShhLCdk YXRhLXJlZmVycmVyJyk7aWYoYSl7dmFyIGQ9L14oPzooPzpbXjpcLz8jXSspOik/ KD86XC9cLyg/OlteXC8/I10qKSk/KFtePyNdKikoPzpcPyhbXiNdKikpPyg/OiMo LiopKT8vLmV4ZWMoZSlbMV18fCcnO2lmKCFkKXJldHVybjt2YXIgYz1kKyd8Jyth LmdldEF0dHJpYnV0ZSgnZGF0YS1yZWZlcnJlcicpO3ZhciBiPW5ldyBEYXRlKCk7 Yi5zZXRUaW1lKG5ldyBEYXRlKCkuZ2V0VGltZSgpKzEwMDApO2RvY3VtZW50LmNv b2tpZT0ieC1zcmM9IitlbmNvZGVVUklDb21wb25lbnQoYykrIjsgIisiZXhwaXJl cz0iK2IudG9HTVRTdHJpbmcoKSsiO3BhdGg9LzsgZG9tYWluPSIrd2luZG93Lmxv Y2F0aW9uLmhvc3RuYW1lLnJlcGxhY2UoL14uKihcLmZhY2Vib29rXC4uKikkL2ks JyQxJyk7fXJldHVybiBhO30KIWZ1bmN0aW9uKCl7aWYod2luZG93Ll9fcHJpbWVy KXJldHVybjt3aW5kb3cuX19wcmltZXI9dHJ1ZTt2YXIgYT1udWxsO2RvY3VtZW50 LmRvY3VtZW50RWxlbWVudC5vbmNsaWNrPWZ1bmN0aW9uKGQpe2Q9ZHx8d2luZG93 LmV2ZW50O2E9ZC50YXJnZXR8fGQuc3JjRWxlbWVudDt2YXIgZT1QYXJlbnQuYnlU YWcoYSwnQScpO2lmKCFlKXJldHVybjt2YXIgYj1lLmdldEF0dHJpYnV0ZSgnYWph eGlmeScpO3ZhciBmPWUuaHJlZjt2YXIgaT1ifHxmO2kmJnVzZXJfYWN0aW9uKGUs J2EnLGQpO2lmKGImJmYmJiEoLyMkLykudGVzdChmKSl7dmFyIGc9ZC53aGljaCYm ZC53aGljaCE9MTt2YXIgaD1kLmFsdEtleXx8ZC5jdHJsS2V5fHxkLm1ldGFLZXl8 fGQuc2hpZnRLZXk7aWYoZ3x8aClyZXR1cm47fXRyYWNrUmVmZXJyZXIoZSxpKTt2 YXIgYz1bJ2RpYWxvZyddO3N3aXRjaChlLnJlbCl7Y2FzZSAnZGlhbG9nLXBpcGUn OmMucHVzaCgnYWpheHBpcGUnKTtjYXNlICdkaWFsb2cnOmNhc2UgJ2RpYWxvZy1w b3N0JzpCb290bG9hZGVyLmxvYWRDb21wb25lbnRzKGMsZnVuY3Rpb24oKXtEaWFs b2cuYm9vdHN0cmFwKGksbnVsbCxlLnJlbD09J2RpYWxvZycsbnVsbCxudWxsLGUp O30pO2JyZWFrO2Nhc2UgJ2FzeW5jJzpjYXNlICdhc3luYy1wb3N0JzpCb290bG9h ZGVyLmxvYWRDb21wb25lbnRzKCdhc3luYycsZnVuY3Rpb24oKXtBc3luY1JlcXVl c3QuYm9vdHN0cmFwKGksZSk7fSk7YnJlYWs7Y2FzZSAndGhlYXRlcic6Qm9vdGxv YWRlci5sb2FkQ29tcG9uZW50cygnUGhvdG9UaGVhdGVyJyxmdW5jdGlvbigpe1Bo b3RvVGhlYXRlci5ib290c3RyYXAoaSxlKTt9KTticmVhaztjYXNlICdjc3RhZ2Un OkJvb3Rsb2FkZXIubG9hZENvbXBvbmVudHMoJ1Bob3RvU25vd2JveCcsZnVuY3Rp b24oKXtQaG90b1Nub3dib3guYm9vdHN0cmFwKGksZSk7fSk7YnJlYWs7Y2FzZSAn dG9nZ2xlJzpDU1MudG9nZ2xlQ2xhc3MoZS5wYXJlbnROb2RlLCdvcGVuVG9nZ2xl cicpO0Jvb3Rsb2FkZXIubG9hZENvbXBvbmVudHMoJ1RvZ2dsZXInLGZ1bmN0aW9u KCl7VG9nZ2xlci5ib290c3RyYXAoZSk7fSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm47 fXJldHVybiBmYWxzZTt9O2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vbnN1Ym1p dD1mdW5jdGlvbihiKXtiPWJ8fHdpbmRvdy5ldmVudDt2YXIgYz1iLnRhcmdldHx8 Yi5zcmNFbGVtZW50O2lmKGMmJmMubm9kZU5hbWU9PSdGT1JNJyYmYy5nZXRBdHRy aWJ1dGUoJ3JlbCcpPT0nYXN5bmMnKXt1c2VyX2FjdGlvbihjLCdmJyxiKTt2YXIg ZD1hO0Jvb3Rsb2FkZXIubG9hZENvbXBvbmVudHMoJ2RvbS1mb3JtJyxmdW5jdGlv bigpe0Zvcm0uYm9vdHN0cmFwKGMsZCk7fSk7cmV0dXJuIGZhbHNlO319O30oKTsK dmFyIE1peGlucz17QXJiaXRlcjp7X2dldEFyYml0ZXJJbnN0YW5jZTpmdW5jdGlv bigpe3JldHVybiB0aGlzLl9hcmJpdGVyfHwodGhpcy5fYXJiaXRlcj1uZXcgQXJi aXRlcigpKTt9LGluZm9ybTpmdW5jdGlvbihjLGIsYSl7cmV0dXJuIHRoaXMuX2dl dEFyYml0ZXJJbnN0YW5jZSgpLmluZm9ybShjLGIsYSk7fSxzdWJzY3JpYmU6ZnVu Y3Rpb24oYyxhLGIpe3JldHVybiB0aGlzLl9nZXRBcmJpdGVySW5zdGFuY2UoKS5z dWJzY3JpYmUoYyxhLGIpO30sdW5zdWJzY3JpYmU6ZnVuY3Rpb24oYSl7dGhpcy5f Z2V0QXJiaXRlckluc3RhbmNlKCkudW5zdWJzY3JpYmUoYSk7fX19OwpGdW5jdGlv bi5wcm90b3R5cGUuZXh0ZW5kPWZ1bmN0aW9uKGEpe2lmKCFNZXRhcHJvdG90eXBl Ll9hcmJpdGVySGFuZGxlKU1ldGFwcm90b3R5cGUuX2FyYml0ZXJIYW5kbGU9QXJi aXRlci5zdWJzY3JpYmUoQXJiaXRlci5CT09UTE9BRCxNZXRhcHJvdG90eXBlLl9v bmJvb3Rsb2FkLmJpbmQoTWV0YXByb3RvdHlwZSkpO01ldGFwcm90b3R5cGUuX3F1 ZXVlKHRoaXMsYSk7fTtmdW5jdGlvbiBNZXRhcHJvdG90eXBlKCl7fWNvcHlfcHJv cGVydGllcyhNZXRhcHJvdG90eXBlLHttYWtlRmluYWw6ZnVuY3Rpb24oYSl7fSxf cGVuZGluZzp7fSxfcXVldWU6ZnVuY3Rpb24oYixjKXtiLl9fY2xhc3NfZXh0ZW5k aW5nPXRydWU7dmFyIGE9QXJiaXRlci5yZWdpc3RlckNhbGxiYWNrKGJpbmQoTWV0 YXByb3RvdHlwZSxNZXRhcHJvdG90eXBlLl9hcHBseSxiLGMpLFtBcmJpdGVyLkZV TkNUSU9OX0VYVEVOU0lPTisnLycrYyxBcmJpdGVyLkJPT1RMT0FEXSk7aWYoYSE9 PW51bGwpdGhpcy5fcGVuZGluZ1tjXT10cnVlO30sX29uYm9vdGxvYWQ6ZnVuY3Rp b24oYixhKXt0aGlzLl91cGRhdGUoKTt9LF91cGRhdGU6ZnVuY3Rpb24oKXtmb3Io dmFyIGEgaW4gdGhpcy5fcGVuZGluZylpZighIXdpbmRvd1thXSl7ZGVsZXRlIHRo aXMuX3BlbmRpbmdbYV07aWYoIXdpbmRvd1thXS5fX2NsYXNzX2V4dGVuZGluZyl7 QXJiaXRlci5pbmZvcm0oQXJiaXRlci5GVU5DVElPTl9FWFRFTlNJT04rJy8nK2Es dHJ1ZSxBcmJpdGVyLkJFSEFWSU9SX1NUQVRFKTt9ZWxzZSB3aW5kb3dbYV0uX19j bGFzc19uYW1lPWE7fX0sX2FwcGx5OmZ1bmN0aW9uKGEsYyl7ZGVsZXRlIGEuX19j bGFzc19leHRlbmRpbmc7dmFyIGQ9X19tZXRhcHJvdG90eXBlKHdpbmRvd1tjXSww KTt2YXIgYj1fX21ldGFwcm90b3R5cGUoYSxkLnByb3RvdHlwZS5fX2xldmVsKzEp O2IucGFyZW50PWQ7aWYoISFhLl9fY2xhc3NfbmFtZSlBcmJpdGVyLmluZm9ybShB cmJpdGVyLkZVTkNUSU9OX0VYVEVOU0lPTisnLycrYS5fX2NsYXNzX25hbWUsdHJ1 ZSxBcmJpdGVyLkJFSEFWSU9SX1NUQVRFKTt9fSk7ZnVuY3Rpb24gX19tZXRhcHJv dG90eXBlKGMsYSl7aWYoYy5fX21ldGFwcm90b3R5cGUpcmV0dXJuIGMuX19tZXRh cHJvdG90eXBlO3ZhciBiPW5ldyBGdW5jdGlvbigpO2IuY29uc3RydWN0PV9fbWV0 YXByb3RvdHlwZV9jb25zdHJ1Y3Q7Yi5wcm90b3R5cGUuY29uc3RydWN0PV9fbWV0 YXByb3RvdHlwZV93cmFwKGMsYSx0cnVlKTtiLnByb3RvdHlwZS5fX2xldmVsPWE7 Yi5iYXNlPWM7Yy5wcm90b3R5cGUucGFyZW50PWI7Yy5fX21ldGFwcm90b3R5cGU9 YjtyZXR1cm4gYjt9ZnVuY3Rpb24gX19tZXRhcHJvdG90eXBlX2NvbnN0cnVjdChh KXtfX21ldGFwcm90b3R5cGVfaW5pdChhLnBhcmVudCk7dmFyIGM9W107dmFyIGI9 YTt3aGlsZShiLnBhcmVudCl7Yy5wdXNoKG5ld19vYmo9bmV3IGIucGFyZW50KCkp O25ld19vYmouX19pbnN0YW5jZT1hO2I9Yi5wYXJlbnQ7fWEucGFyZW50PWNbMV07 Yy5yZXZlcnNlKCk7Yy5wb3AoKTthLl9fcGFyZW50cz1jO2EuX19pbnN0YW5jZT1h O3JldHVybiBhLnBhcmVudC5jb25zdHJ1Y3QuYXBwbHkoYS5wYXJlbnQsYXJndW1l bnRzKTt9ZnVuY3Rpb24gX19tZXRhcHJvdG90eXBlX2luaXQoZCl7aWYoZC5pbml0 aWFsaXplZClyZXR1cm47dmFyIGE9ZC5iYXNlLnByb3RvdHlwZTtpZihkLnBhcmVu dCl7X19tZXRhcHJvdG90eXBlX2luaXQoZC5wYXJlbnQpO3ZhciBlPWQucGFyZW50 LnByb3RvdHlwZTtmb3IodmFyIGIgaW4gZSlpZihiIT0nX19sZXZlbCcmJmIhPSdj b25zdHJ1Y3QnJiZhW2JdPT09dW5kZWZpbmVkKWFbYl09ZC5wcm90b3R5cGVbYl09 ZVtiXTt9ZC5pbml0aWFsaXplZD10cnVlO3ZhciBjPWQucHJvdG90eXBlLl9fbGV2 ZWw7Zm9yKHZhciBiIGluIGEpaWYoYiE9J3BhcmVudCcpYVtiXT1kLnByb3RvdHlw ZVtiXT1fX21ldGFwcm90b3R5cGVfd3JhcChhW2JdLGMpO31mdW5jdGlvbiBfX21l dGFwcm90b3R5cGVfd3JhcChjLGIsZCl7aWYodHlwZW9mIGMhPSdmdW5jdGlvbid8 fGMuX19wcm90b3R5cGVkKXJldHVybiBjO3ZhciBhPWZ1bmN0aW9uKCl7dmFyIGc9 dGhpcy5fX2luc3RhbmNlO2lmKGcpe3ZhciBoPWcucGFyZW50O2cucGFyZW50PWI/ Zy5fX3BhcmVudHNbYi0xXTpudWxsO2lmKGQpe3ZhciBlPVtdO2Zvcih2YXIgZj0x O2Y8YXJndW1lbnRzLmxlbmd0aDtmKyspZS5wdXNoKGFyZ3VtZW50c1tmXSk7dmFy IGk9Yy5hcHBseShnLGUpO31lbHNlIHZhciBpPWMuYXBwbHkoZyxhcmd1bWVudHMp O2cucGFyZW50PWg7cmV0dXJuIGk7fWVsc2UgcmV0dXJuIGMuYXBwbHkodGhpcyxh cmd1bWVudHMpO307YS5fX3Byb3RvdHlwZWQ9dHJ1ZTtyZXR1cm4gYTt9RnVuY3Rp b24ucHJvdG90eXBlLm1peGluPWZ1bmN0aW9uKCl7dmFyIGE9W3RoaXMucHJvdG90 eXBlXS5jb25jYXQoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRz KSk7RnVuY3Rpb24ubWl4aW4uYXBwbHkobnVsbCxhKTt9O0Z1bmN0aW9uLm1peGlu PWZ1bmN0aW9uKCl7Zm9yKHZhciBiPTEsYT1hcmd1bWVudHMubGVuZ3RoO2I8YTsr K2IpY29weV9wcm9wZXJ0aWVzKGFyZ3VtZW50c1swXSxNaXhpbnNbYXJndW1lbnRz W2JdXXx8YXJndW1lbnRzW2JdKTt9O0Z1bmN0aW9uLnByb3RvdHlwZS5iaW5kPWZ1 bmN0aW9uKGIpe3ZhciBhPVtiLHRoaXNdLmNvbmNhdChBcnJheS5wcm90b3R5cGUu c2xpY2UuY2FsbChhcmd1bWVudHMsMSkpO3JldHVybiBiaW5kLmFwcGx5KG51bGws YSk7fTtGdW5jdGlvbi5wcm90b3R5cGUuY3Vycnk9RnVuY3Rpb24ucHJvdG90eXBl LmJpbmQuYmluZChudWxsLG51bGwpO0Z1bmN0aW9uLnByb3RvdHlwZS5zaGllbGQ9 ZnVuY3Rpb24oYil7aWYodHlwZW9mIHRoaXMhPSdmdW5jdGlvbicpdGhyb3cgbmV3 IFR5cGVFeGNlcHRpb24oKTt2YXIgYT10aGlzLmJpbmQuYXBwbHkodGhpcywkQShh cmd1bWVudHMpKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYSgpO307fTtGdW5j dGlvbi5wcm90b3R5cGUuZGVmZXI9ZnVuY3Rpb24oYixhKXtpZih0eXBlb2YgdGhp cyE9J2Z1bmN0aW9uJyl0aHJvdyBuZXcgVHlwZUVycm9yKCk7Yj1ifHwwO3JldHVy biBzZXRUaW1lb3V0KHRoaXMsYixhKTt9O0Z1bmN0aW9uLnByb3RvdHlwZS5yZWN1 cj1mdW5jdGlvbihiLGEpe2lmKHR5cGVvZiB0aGlzIT0nZnVuY3Rpb24nKXRocm93 IG5ldyBUeXBlRXJyb3IoKTtyZXR1cm4gc2V0SW50ZXJ2YWwodGhpcyxiLGEpO307 ZnVuY3Rpb24gYmFnb2Zob2xkaW5nKCl7fWZ1bmN0aW9uIGJhZ29mKGEpe3JldHVy biBmdW5jdGlvbigpe3JldHVybiBhO307fWZ1bmN0aW9uIGFic3RyYWN0TWV0aG9k KCl7dGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBpbXBsZW1lbnQgdGhpcyBmdW5j dGlvbiBpbiB5b3VyIGJhc2UgY2xhc3MuJyk7fQp2YXIgdWE9e2llOmZ1bmN0aW9u KCl7cmV0dXJuIHVhLl9wb3B1bGF0ZSgpfHx0aGlzLl9pZTt9LGZpcmVmb3g6ZnVu Y3Rpb24oKXtyZXR1cm4gdWEuX3BvcHVsYXRlKCl8fHRoaXMuX2ZpcmVmb3g7fSxv cGVyYTpmdW5jdGlvbigpe3JldHVybiB1YS5fcG9wdWxhdGUoKXx8dGhpcy5fb3Bl cmE7fSxzYWZhcmk6ZnVuY3Rpb24oKXtyZXR1cm4gdWEuX3BvcHVsYXRlKCl8fHRo aXMuX3NhZmFyaTt9LGNocm9tZTpmdW5jdGlvbigpe3JldHVybiB1YS5fcG9wdWxh dGUoKXx8dGhpcy5fY2hyb21lO30sd2luZG93czpmdW5jdGlvbigpe3JldHVybiB1 YS5fcG9wdWxhdGUoKXx8dGhpcy5fd2luZG93czt9LG9zeDpmdW5jdGlvbigpe3Jl dHVybiB1YS5fcG9wdWxhdGUoKXx8dGhpcy5fb3N4O30sbGludXg6ZnVuY3Rpb24o KXtyZXR1cm4gdWEuX3BvcHVsYXRlKCl8fHRoaXMuX2xpbnV4O30saXBob25lOmZ1 bmN0aW9uKCl7cmV0dXJuIHVhLl9wb3B1bGF0ZSgpfHx0aGlzLl9pcGhvbmU7fSxf cG9wdWxhdGVkOmZhbHNlLF9wb3B1bGF0ZTpmdW5jdGlvbigpe2lmKHVhLl9wb3B1 bGF0ZWQpcmV0dXJuO3VhLl9wb3B1bGF0ZWQ9dHJ1ZTt2YXIgYT0vKD86TVNJRS4o XGQrXC5cZCspKXwoPzooPzpGaXJlZm94fEdyYW5QYXJhZGlzb3xJY2V3ZWFzZWwp LihcZCtcLlxkKykpfCg/Ok9wZXJhKD86LitWZXJzaW9uLnwuKShcZCtcLlxkKykp fCg/OkFwcGxlV2ViS2l0LihcZCsoPzpcLlxkKyk/KSkvLmV4ZWMobmF2aWdhdG9y LnVzZXJBZ2VudCk7dmFyIGM9LyhNYWMgT1MgWCl8KFdpbmRvd3MpfChMaW51eCkv LmV4ZWMobmF2aWdhdG9yLnVzZXJBZ2VudCk7dmFyIGI9L1xiKGlQaG9uZXxpUFth b11kKS8uZXhlYyhuYXZpZ2F0b3IudXNlckFnZW50KTtpZihhKXt1YS5faWU9YVsx XT9wYXJzZUZsb2F0KGFbMV0pOk5hTjtpZih1YS5faWU+PTgmJiF3aW5kb3cuSFRN TENvbGxlY3Rpb24pdWEuX2llPTc7dWEuX2ZpcmVmb3g9YVsyXT9wYXJzZUZsb2F0 KGFbMl0pOk5hTjt1YS5fb3BlcmE9YVszXT9wYXJzZUZsb2F0KGFbM10pOk5hTjt1 YS5fc2FmYXJpPWFbNF0/cGFyc2VGbG9hdChhWzRdKTpOYU47aWYodWEuX3NhZmFy aSl7YT0vKD86Q2hyb21lXC8oXGQrXC5cZCspKS8uZXhlYyhuYXZpZ2F0b3IudXNl ckFnZW50KTt1YS5fY2hyb21lPWEmJmFbMV0/cGFyc2VGbG9hdChhWzFdKTpOYU47 fWVsc2UgdWEuX2Nocm9tZT1OYU47fWVsc2UgdWEuX2llPXVhLl9maXJlZm94PXVh Ll9vcGVyYT11YS5fY2hyb21lPXVhLl9zYWZhcmk9TmFOO2lmKGMpe3VhLl9vc3g9 ISFjWzFdO3VhLl93aW5kb3dzPSEhY1syXTt1YS5fbGludXg9ISFjWzNdO31lbHNl IHVhLl9vc3g9dWEuX3dpbmRvd3M9dWEuX2xpbnV4PWZhbHNlO3VhLl9pcGhvbmU9 Yjt9fTsKT25sb2FkRXZlbnQ9e09OTE9BRDonb25sb2FkL29ubG9hZCcsT05MT0FE X0NBTExCQUNLOidvbmxvYWQvb25sb2FkX2NhbGxiYWNrJyxPTkxPQURfRE9NQ09O VEVOVDonb25sb2FkL2RvbV9jb250ZW50X3JlYWR5JyxPTkxPQURfRE9NQ09OVEVO VF9DQUxMQkFDSzonb25sb2FkL2RvbWNvbnRlbnRfY2FsbGJhY2snLE9OQkVGT1JF VU5MT0FEOidvbmxvYWQvYmVmb3JldW5sb2FkJyxPTlVOTE9BRDonb25sb2FkL3Vu bG9hZCd9O2Z1bmN0aW9uIF9pbmNsdWRlX3F1aWNrbGluZ19ldmVudHNfZGVmYXVs dCgpe3JldHVybiAhd2luZG93LmxvYWRpbmdfcGFnZV9jaHJvbWU7fWZ1bmN0aW9u IG9uYmVmb3JldW5sb2FkUmVnaXN0ZXIoYSxiKXtpZihiPT09dW5kZWZpbmVkKWI9 X2luY2x1ZGVfcXVpY2tsaW5nX2V2ZW50c19kZWZhdWx0KCk7Yj9fYWRkSG9vaygn b25iZWZvcmVsZWF2ZWhvb2tzJyxhKTpfYWRkSG9vaygnb25iZWZvcmV1bmxvYWRo b29rcycsYSk7fWZ1bmN0aW9uIG9udW5sb2FkUmVnaXN0ZXIoYSl7aWYoIXdpbmRv dy5vbnVubG9hZCl3aW5kb3cub251bmxvYWQ9ZnVuY3Rpb24oKXtBcmJpdGVyLmlu Zm9ybShPbmxvYWRFdmVudC5PTlVOTE9BRCx0cnVlLEFyYml0ZXIuQkVIQVZJT1Jf U1RBVEUpO307X2FkZEhvb2soJ29udW5sb2FkaG9va3MnLGEpO31mdW5jdGlvbiBv bmxlYXZlUmVnaXN0ZXIoYSl7X2FkZEhvb2soJ29ubGVhdmVob29rcycsYSk7fWZ1 bmN0aW9uIF9hZGRIb29rKGIsYSl7d2luZG93W2JdPSh3aW5kb3dbYl18fFtdKS5j b25jYXQoYSk7fWZ1bmN0aW9uIHJlbW92ZUhvb2soYSl7d2luZG93W2FdPVtdO31m dW5jdGlvbiBfZG9tY29udGVudHJlYWR5KCl7QXJiaXRlci5pbmZvcm0oT25sb2Fk RXZlbnQuT05MT0FEX0RPTUNPTlRFTlQsdHJ1ZSxBcmJpdGVyLkJFSEFWSU9SX1NU QVRFKTt9ZnVuY3Rpb24gX2Jvb3RzdHJhcEV2ZW50SGFuZGxlcnMoKXt2YXIgYT1k b2N1bWVudCxlPXdpbmRvdztpZihhLmFkZEV2ZW50TGlzdGVuZXIpe2lmKHVhLnNh ZmFyaSgpPDUyNSl7dmFyIGQ9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZigvbG9h ZGVkfGNvbXBsZXRlLy50ZXN0KGEucmVhZHlTdGF0ZSkpe19kb21jb250ZW50cmVh ZHkoKTtjbGVhckludGVydmFsKGQpO319LDEwKTt9ZWxzZSBhLmFkZEV2ZW50TGlz dGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLF9kb21jb250ZW50cmVhZHksdHJ1ZSk7 fWVsc2V7dmFyIGM9J2phdmFzY3JpcHQ6dm9pZCgwKSc7aWYoZS5sb2NhdGlvbi5w cm90b2NvbD09J2h0dHBzOicpYz0nLy86JzthLndyaXRlKCc8c2NyaXB0IG9ucmVh ZHlzdGF0ZWNoYW5nZT0iaWYgKHRoaXMucmVhZHlTdGF0ZT09XCdjb21wbGV0ZVwn KSB7JysndGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMpO19kb21jb250 ZW50cmVhZHkoKTt9IiAnKydkZWZlcj0iZGVmZXIiIHNyYz0iJytjKyciPjxcL3Nj cmlwdFw+Jyk7fXZhciBiPWUub25sb2FkO2Uub25sb2FkPWZ1bmN0aW9uKCl7ZS5D YXZhbHJ5TG9nZ2VyJiZDYXZhbHJ5TG9nZ2VyLmdldEluc3RhbmNlKCkuc2V0VGlt ZVN0YW1wKCd0X2xheW91dCcpO2ImJmIoKTtBcmJpdGVyLmluZm9ybShPbmxvYWRF dmVudC5PTkxPQUQsdHJ1ZSxBcmJpdGVyLkJFSEFWSU9SX1NUQVRFKTt9O2Uub25i ZWZvcmV1bmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZj17fTtBcmJpdGVyLmluZm9ybShP bmxvYWRFdmVudC5PTkJFRk9SRVVOTE9BRCxmLEFyYml0ZXIuQkVIQVZJT1JfU1RB VEUpO2lmKCFmLndhcm4pQXJiaXRlci5pbmZvcm0oJ29ubG9hZC9leGl0Jyx0cnVl KTtyZXR1cm4gZi53YXJuO307fW9ubG9hZF9jYWxsYmFjaz1BcmJpdGVyLnJlZ2lz dGVyQ2FsbGJhY2soZnVuY3Rpb24oKXt3aW5kb3cuQ2F2YWxyeUxvZ2dlciYmQ2F2 YWxyeUxvZ2dlci5nZXRJbnN0YW5jZSgpLnNldFRpbWVTdGFtcCgndF9vbmxvYWQn KTtBcmJpdGVyLmluZm9ybShPbmxvYWRFdmVudC5PTkxPQURfQ0FMTEJBQ0ssdHJ1 ZSxBcmJpdGVyLkJFSEFWSU9SX1NUQVRFKTt9LFtPbmxvYWRFdmVudC5PTkxPQURd KTtkb21jb250ZW50X2NhbGxiYWNrPUFyYml0ZXIucmVnaXN0ZXJDYWxsYmFjayhm dW5jdGlvbigpe3dpbmRvdy5DYXZhbHJ5TG9nZ2VyJiZDYXZhbHJ5TG9nZ2VyLmdl dEluc3RhbmNlKCkuc2V0VGltZVN0YW1wKCd0X2RvbWNvbnRlbnQnKTtBcmJpdGVy LmluZm9ybShPbmxvYWRFdmVudC5PTkxPQURfRE9NQ09OVEVOVF9DQUxMQkFDSyx0 cnVlLEFyYml0ZXIuQkVIQVZJT1JfU1RBVEUpO30sW09ubG9hZEV2ZW50Lk9OTE9B RF9ET01DT05URU5UXSk7aWYoIXdpbmRvdy5fZXZlbnRIYW5kbGVyc0Jvb3RzdHJh cHBlZCl7X2V2ZW50SGFuZGxlcnNCb290c3RyYXBwZWQ9dHJ1ZTtfYm9vdHN0cmFw RXZlbnRIYW5kbGVycygpO30KZnVuY3Rpb24gdHgoYixhKXtpZih0eXBlb2YgX3N0 cmluZ190YWJsZT09J3VuZGVmaW5lZCcpcmV0dXJuO2I9X3N0cmluZ190YWJsZVti XTtyZXR1cm4gX3R4KGIsYSk7fWZ1bmN0aW9uIGludGxfZW5kc19pbl9wdW5jdChh KXtpZih0eXBlb2YgYSE9J3N0cmluZycpcmV0dXJuIGZhbHNlO3JldHVybiBhLm1h dGNoKG5ldyBSZWdFeHAoaW50bF9lbmRzX2luX3B1bmN0LnB1bmN0X2NoYXJfY2xh c3MrJ1snKycpIicrIiciKydcdTAwQkInKydcdTBGM0InKydcdTBGM0QnKydcdTIw MTknKydcdTIwMUQnKydcdTIwM0EnKydcdTMwMDknKydcdTMwMEInKydcdTMwMEQn KydcdTMwMEYnKydcdTMwMTEnKydcdTMwMTUnKydcdTMwMTcnKydcdTMwMTknKydc dTMwMUInKydcdTMwMUUnKydcdTMwMUYnKydcdUZEM0YnKydcdUZGMDcnKydcdUZG MDknKydcdUZGM0QnKydccycrJ10qJCcpKTt9aW50bF9lbmRzX2luX3B1bmN0LnB1 bmN0X2NoYXJfY2xhc3M9J1snKycuIT8nKydcdTMwMDInKydcdUZGMDEnKydcdUZG MUYnKydcdTA5NjQnKydcdTIwMjYnKydcdTBFQUYnKydcdTE4MDEnKydcdTBFMkYn KydcdUZGMEUnKyddJztmdW5jdGlvbiBpbnRsX3JlbmRlcl9saXN0X3NlcGFyYXRv cigpe3JldHVybiBfdHgoIntwcmV2aW91cy1pdGVtc30sIHtuZXh0LWl0ZW1zfSIs eydwcmV2aW91cy1pdGVtcyc6JycsJ25leHQtaXRlbXMnOicnfSk7fWZ1bmN0aW9u IGludGxfcGhvbm9sb2dpY2FsX3J1bGVzKGUpe3ZhciBjLGI9ZSxkPXdpbmRvdy5p bnRsX2xvY2FsZV9yZXdyaXRlczt0cnl7aWYoZCl7dmFyIHBhdHM9W10scmVwcz1b XTtmb3IodmFyIHAgaW4gZC5wYXR0ZXJucyl7dmFyIHBhdD1wLHJlcD1kLnBhdHRl cm5zW3BdO2Zvcih2YXIgbSBpbiBkLm1ldGEpe2M9bmV3IFJlZ0V4cChtLnNsaWNl KDEsLTEpLCdnJyk7cGF0PXBhdC5yZXBsYWNlKGMsZC5tZXRhW21dKTtyZXA9cmVw LnJlcGxhY2UoYyxkLm1ldGFbbV0pO31wYXRzW3BhdHMubGVuZ3RoXT1wYXQ7cmVw c1tyZXBzLmxlbmd0aF09cmVwO31mb3IodmFyIGlpPTA7aWk8cGF0cy5sZW5ndGg7 aWkrKyl7Yz1uZXcgUmVnRXhwKHBhdHNbaWldLnNsaWNlKDEsLTEpLCdnJyk7aWYo cmVwc1tpaV09PSdqYXZhc2NyaXB0Jyl7aWYobT1uZXcgU3RyaW5nKGUubWF0Y2go YykpKWU9ZS5yZXBsYWNlKGMsbS5zbGljZSgxKS50b0xvd2VyQ2FzZSgpKTt9ZWxz ZSBlPWUucmVwbGFjZShjLHJlcHNbaWldKTt9fX1jYXRjaChhKXtlPWI7fWM9bmV3 IFJlZ0V4cCgnXHgwMScsJ2cnKTtlPWUucmVwbGFjZShjLCcnKTtyZXR1cm4gZTt9 ZnVuY3Rpb24gX3R4KGUsYSl7aWYoIWEpcmV0dXJuIGU7dmFyIGQ7Zm9yKHZhciBj IGluIGEpe2lmKGludGxfZW5kc19pbl9wdW5jdChhW2NdKSl7ZD1uZXcgUmVnRXhw KCdcXHsnK2MrJ1xcfScraW50bF9lbmRzX2luX3B1bmN0LnB1bmN0X2NoYXJfY2xh c3MrJyonLCdnJyk7fWVsc2UgZD1uZXcgUmVnRXhwKCdcXHsnK2MrJ1xcfScsJ2cn KTt2YXIgYj0nJztpZihhW2NdWzBdIT0nficpYj0nXHgwMSc7ZT1lLnJlcGxhY2Uo ZCxiK2FbY10rYik7fWU9aW50bF9waG9ub2xvZ2ljYWxfcnVsZXMoZSk7cmV0dXJu IGU7fQpJbml0aWFsSlNMb2FkZXI9e0lOSVRJQUxfSlNfUkVBRFk6J0JPT1RMT0FE L0pTUkVBRFknLGxvYWQ6ZnVuY3Rpb24oYSl7SW5pdGlhbEpTTG9hZGVyLmNhbGxi YWNrPUJvb3Rsb2FkZXIubG9hZFJlc291cmNlcyhhLEluaXRpYWxKU0xvYWRlci5j YWxsYmFjayk7fSxjYWxsYmFjazpBcmJpdGVyLnJlZ2lzdGVyQ2FsbGJhY2soZnVu Y3Rpb24oKXtBcmJpdGVyLmluZm9ybShJbml0aWFsSlNMb2FkZXIuSU5JVElBTF9K U19SRUFEWSx0cnVlLEFyYml0ZXIuQkVIQVZJT1JfU1RBVEUpO30sW09ubG9hZEV2 ZW50Lk9OTE9BRF9ET01DT05URU5UX0NBTExCQUNLXSl9OwpmdW5jdGlvbiBnb1VS SShiLGEpe2I9Yi50b1N0cmluZygpO2lmKCFhJiZ3aW5kb3cuUGFnZVRyYW5zaXRp b25zJiZQYWdlVHJhbnNpdGlvbnMuaXNJbml0aWFsaXplZCgpKXtQYWdlVHJhbnNp dGlvbnMuZ28oYik7fWVsc2UgaWYod2luZG93LmxvY2F0aW9uLmhyZWY9PWIpe3dp bmRvdy5sb2NhdGlvbi5yZWxvYWQoKTt9ZWxzZSB3aW5kb3cubG9jYXRpb24uaHJl Zj1iO31mdW5jdGlvbiBsb2FkRXh0ZXJuYWxKYXZhc2NyaXB0KGYsYixhKXtpZihm IGluc3RhbmNlb2YgQXJyYXkpe3ZhciBlPWYuc2hpZnQoMCk7aWYoZSl7bG9hZEV4 dGVybmFsSmF2YXNjcmlwdChlLGZ1bmN0aW9uKCl7aWYoZi5sZW5ndGgpe2xvYWRF eHRlcm5hbEphdmFzY3JpcHQoZixiLGEpO31lbHNlIGImJmIoKTt9LGEpO31lbHNl IGlmKGIpYigpO31lbHNle3ZhciBjPWE/ZG9jdW1lbnQuYm9keTpkb2N1bWVudC5n ZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO3ZhciBkPWRvY3VtZW50LmNy ZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO2QudHlwZT0ndGV4dC9qYXZhc2NyaXB0Jztk LnNyYz1mO2lmKGIpe2Qub25lcnJvcj1kLm9ubG9hZD1iO2Qub25yZWFkeXN0YXRl Y2hhbmdlPWZ1bmN0aW9uKCl7aWYodGhpcy5yZWFkeVN0YXRlPT0iY29tcGxldGUi fHx0aGlzLnJlYWR5U3RhdGU9PSJsb2FkZWQiKWIoKTt9O31jLmFwcGVuZENoaWxk KGQpO3JldHVybiBkO319ZnVuY3Rpb24gaW52b2tlX2NhbGxiYWNrcyhiLGQpe2lm KGIpZm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspdHJ5eyhuZXcgRnVuY3Rpb24o YltjXSkpLmFwcGx5KGQpO31jYXRjaChhKXt9fQp3aW5kb3cuRXZlbnQ9d2luZG93 LkV2ZW50fHxmdW5jdGlvbigpe307RXZlbnQuX19pbmxpbmVTdWJtaXQ9ZnVuY3Rp b24oYixldmVudCl7dmFyIGE9RXZlbnQuX19nZXRIYW5kbGVyJiZFdmVudC5fX2dl dEhhbmRsZXIoYiwnc3VibWl0Jyk7cmV0dXJuIGE/bnVsbDpFdmVudC5fX2J1YmJs ZVN1Ym1pdChiLGV2ZW50KTt9O0V2ZW50Ll9fYnViYmxlU3VibWl0PWZ1bmN0aW9u KGEsZXZlbnQpe2lmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hdHRhY2hFdmVu dCl7dmFyIGI7d2hpbGUoYiE9PWZhbHNlJiYoYT1hLnBhcmVudE5vZGUpKWI9YS5v bnN1Ym1pdD9hLm9uc3VibWl0KGV2ZW50KTpFdmVudC5fX2ZpcmUmJkV2ZW50Ll9f ZmlyZShhLCdzdWJtaXQnLGV2ZW50KTtyZXR1cm4gYjt9fTsKSlNDQz13aW5kb3cu SlNDQ3x8ZnVuY3Rpb24oKXt2YXIgYT17fSxiPXt9O3JldHVybiB7Z2V0OmZ1bmN0 aW9uKGMpe2lmKGMgaW4gYSl7YltjXT1hW2NdKCk7ZGVsZXRlIGFbY107cmV0dXJu IGJbY107fWVsc2UgcmV0dXJuIGJbY107fSxpbml0OmZ1bmN0aW9uKGMpe2NvcHlf cHJvcGVydGllcyhhLGMpO319O30oKTsKRHluYVRlbXBsYXRlPXdpbmRvdy5EeW5h VGVtcGxhdGV8fChmdW5jdGlvbigpe3ZhciBnPSdbWycsaT0nXFxbXFxbJyxoPSdc XF1cXF0nO3ZhciBsPXt9O3ZhciBhPXt9O2Z1bmN0aW9uIGQobixtKXtyZXR1cm4g bS5pbmRleE9mKGcrbikhPS0xO31mdW5jdGlvbiBlKG0pe3JldHVybiBPYmplY3Qu cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobSk9PT0iW29iamVjdCBBcnJheV0iO31m dW5jdGlvbiBmKG0pe3JldHVybiBtJiZ0eXBlb2YgbT09Im9iamVjdCI7fWZ1bmN0 aW9uIGMobSl7c3dpdGNoKG0pe2Nhc2UgIiYiOnJldHVybiAiJmFtcDsiO2Nhc2Ug JyInOnJldHVybiAnJnF1b3Q7JztjYXNlICInIjpyZXR1cm4gJyYjMzk7JztjYXNl ICI8IjpyZXR1cm4gIiZsdDsiO2Nhc2UgIj4iOnJldHVybiAiJmd0OyI7ZGVmYXVs dDpyZXR1cm4gbTt9fWZ1bmN0aW9uIGIobSl7bT1TdHJpbmcobT09PW51bGw/IiI6 bSk7cmV0dXJuIG0ucmVwbGFjZSgvJig/IVx3KzspfFsiJzw+XS9nLGMpO31mdW5j dGlvbiBqKG4pe2Zvcih2YXIgbSBpbiBuKXt2YXIgbz1uW21dO2Fbb1swXV09b1sx XTtsW21dPW9bMV07fX1mdW5jdGlvbiBrKHAsbSl7aWYocC5jaGFyQXQoMCk9PSdA JylyZXR1cm4gayhhW3Auc3Vic3RyaW5nKDEpXSxtKTtpZihkKCcjJyxwKXx8ZCgn XicscCkpe3ZhciBvPW5ldyBSZWdFeHAoaSsiKFxcXnxcXCMpXFxzKiguKylcXHMq IitoKyJcbiooW1xcc1xcU10rPykiK2krIlxcL1xccypcXDJcXHMqIitoKyJcXHMq IiwibWciKTtwPXAucmVwbGFjZShvLGZ1bmN0aW9uKHEsdix0LHIpe3ZhciB3PW1b dF07dz0odyYmdy5fX2h0bWwhPT11bmRlZmluZWQpP3cuX19odG1sOnc7aWYodj09 J14nKXtpZighd3x8ZSh3KSYmdy5sZW5ndGg9PT0wKXtyZXR1cm4gayhyLG0pO31l bHNlIHJldHVybiAnJzt9ZWxzZSBpZih2PT0nIycpe2lmKGUodykpe3ZhciB1PVtd O2Zvcih2YXIgcz0wO3M8dy5sZW5ndGg7cysrKXUucHVzaChrKHIsd1tzXSkpO3Jl dHVybiB1LmpvaW4oJycpO31lbHNlIGlmKGYodykpe3JldHVybiBrKHIsdyk7fWVs c2UgaWYoISh0eXBlb2Ygdz09J2Z1bmN0aW9uJykpaWYodylyZXR1cm4gayhyLG0p O3JldHVybiAnJzt9fSk7fWlmKCFkKCIiLHApKXJldHVybiBwO3ZhciBuPW5ldyBS ZWdFeHAoaSsiKD58XFxbfCYpPyhbXlxcLyNcXF5dKz8pXFwxPyIraCsiKyIsImci KTtyZXR1cm4gcC5yZXBsYWNlKG4sZnVuY3Rpb24ocSxzLHIpe3I9ci5yZXBsYWNl KC9eXHMqfFxzKiQvZywiIik7dmFyIHQ9bVtyXTtpZighdHx8dCBpbnN0YW5jZW9m IEFycmF5JiZ0Lmxlbmd0aD09PTApcmV0dXJuICcnO3N3aXRjaChzKXtjYXNlICc+ JzppZih0WzBdLmNoYXJBdCgwKT09J0AnKXtyZXR1cm4gayh0WzBdLHRbMV0pO31l bHNlIGlmKCEodFswXSBpbiBsKSlyZXR1cm4gJyc7cmV0dXJuIGsobFt0WzBdXSx0 WzFdKTtjYXNlICcmJzpkZWZhdWx0OmlmKHdpbmRvdy5IVE1MJiZ0IGluc3RhbmNl b2YgSFRNTClyZXR1cm4gdC50b1N0cmluZygpO3JldHVybiB0Ll9faHRtbCE9PXVu ZGVmaW5lZD90Ll9faHRtbDpiKHQpO319KTt9cmV0dXJuIHtyZWdpc3RlclRlbXBs YXRlczpqLHJlbmRlclRvSHRtbDprfTt9KSgpOwpmdW5jdGlvbiBCaWdQaXBlKGEp e2NvcHlfcHJvcGVydGllcyh0aGlzLHthcmJpdGVyOkFyYml0ZXIscm9vdE5vZGVJ RDonY29udGVudCcsbGlkOjAsaXNBamF4OmZhbHNlLGlzUmVwbGF5OmZhbHNlLHJy RW5hYmxlZDp0cnVlLGRvbUNvbnRlbnRDYWxsYmFjazpkb21jb250ZW50X2NhbGxi YWNrLG9ubG9hZENhbGxiYWNrOm9ubG9hZF9jYWxsYmFjayxkb21Db250ZW50RXZ0 Ok9ubG9hZEV2ZW50Lk9OTE9BRF9ET01DT05URU5UX0NBTExCQUNLLG9ubG9hZEV2 dDpPbmxvYWRFdmVudC5PTkxPQURfQ0FMTEJBQ0ssZm9yY2VGaW5pc2g6ZmFsc2Us X3BoYXNlRG9uZUNhbGxiYWNrczpbXSxfY3VycmVudFBoYXNlOjAsX2xhc3RQaGFz ZTotMSxfdGltZW91dDoyMCxfY2FjaGVkX3BhZ2VsZXRzOnt9fSk7Y29weV9wcm9w ZXJ0aWVzKHRoaXMsYSk7dGhpcy5fY2F2YWxyeT0odGhpcy5saWQmJndpbmRvdy5D YXZhbHJ5TG9nZ2VyKT9DYXZhbHJ5TG9nZ2VyLmdldEluc3RhbmNlKHRoaXMubGlk KTpudWxsO3RoaXMuX2luc3Q9dGhpcy5fY2F2YWxyeSYmKHdpbmRvdy5fcGFnZWxl dF9wcm9maWxlfHx0aGlzLl9jYXZhbHJ5LmlzUGFnZWxldFByb2ZpbGVyKCkpO0Jp Z1BpcGUuX2N1cnJlbnRfaW5zdGFuY2U9dGhpcztpZih3aW5kb3cuZW52X2dldCYm ZW52X2dldCgndHRpX3Zpc2lvbicpPT09MSkobmV3IFRUSVZpc3VhbGl6ZXIodGhp cykpLmluaXQoKTt0aGlzLmFyYml0ZXIucmVnaXN0ZXJDYWxsYmFjayh0aGlzLmRv bUNvbnRlbnRDYWxsYmFjayxbJ3BhZ2VsZXRfZGlzcGxheWVkX2FsbCddKTt0aGlz LmFyYml0ZXIuaW5mb3JtKCdwaGFzZV9iZWdpbl8wJyx0cnVlLEFyYml0ZXIuQkVI QVZJT1JfU1RBVEUpO3RoaXMuX2luc3QmJnRoaXMuX2NhdmFscnkuc2V0VGltZVN0 YW1wKCd0X3BoYXNlX2JlZ2luXzAnKTt0aGlzLm9ubG9hZENhbGxiYWNrPXRoaXMu YXJiaXRlci5yZWdpc3RlckNhbGxiYWNrKHRoaXMub25sb2FkQ2FsbGJhY2ssWydw YWdlbGV0X2Rpc3BsYXllZF9hbGwnXSk7fWNvcHlfcHJvcGVydGllcyhCaWdQaXBl LnByb3RvdHlwZSx7X2N0OmZ1bmN0aW9uKGEpe3JldHVybiAoIWF8fCdsZW5ndGgn IGluIGEmJmEubGVuZ3RoPT09MCk/e306YTt9LF9kaXNwbGF5UGFnZWxldDpmdW5j dGlvbihlKXtlLmNvbnRlbnQ9dGhpcy5fY3QoZS5jb250ZW50KTt2YXIgZD10cnVl O2Zvcih2YXIgYyBpbiBlLmNvbnRlbnQpe2lmKGUuYXBwZW5kKXtpZihlLmFwcGVu ZD09PSdiaWdwaXBlX3Jvb3QnKXt0YXJnZXRfaWQ9dGhpcy5yb290Tm9kZUlEO31l bHNlIHRhcmdldF9pZD1lLmFwcGVuZDt9ZWxzZSB0YXJnZXRfaWQ9Yzt2YXIgYj1k b2N1bWVudC5nZXRFbGVtZW50QnlJZCh0YXJnZXRfaWQpLGE9ZS5jb250ZW50W2Nd O2lmKGIpe2lmKGEpe2lmKHR5cGVvZiBhIT0nc3RyaW5nJylhPUR5bmFUZW1wbGF0 ZS5yZW5kZXJUb0h0bWwoYVswXSxhWzFdKTtpZighZS5hcHBlbmQmJmUuaGFzX2lu bGluZV9qcyl7aWYod2luZG93LkRPTSYmd2luZG93LkhUTUwpe0RPTS5zZXRDb250 ZW50KGIsSFRNTChhKSk7fWVsc2V7ZD1mYWxzZTtCb290bG9hZGVyLmxvYWRDb21w b25lbnRzKCdkb20nLGZ1bmN0aW9uKCl7RE9NLnNldENvbnRlbnQoYixIVE1MKGEp KTt0aGlzLmFyYml0ZXIuaW5mb3JtKGUuaWQrJ19kaXNwbGF5ZWQnLHRydWUsQXJi aXRlci5CRUhBVklPUl9TVEFURSk7fS5iaW5kKHRoaXMpKTt9fWVsc2UgaWYoZS5h cHBlbmR8fHVhLmllKCk8OCl7aWYoIWUuYXBwZW5kKXdoaWxlKGIuZmlyc3RDaGls ZCliLnJlbW92ZUNoaWxkKGIuZmlyc3RDaGlsZCk7dGhpcy5fYXBwZW5kTm9kZXMo YixhKTt9ZWxzZSBiLmlubmVySFRNTD1hO31pZih0aGlzLl9pbnN0KXRoaXMuX2Nh dmFscnkub25QYWdlbGV0RXZlbnQoJ2Rpc3BsYXknLGUuaWQpO2Iuc2V0QXR0cmli dXRlKCJkYXRhLXJlZmVycmVyIixiLmdldEF0dHJpYnV0ZSgiZGF0YS1yZWZlcnJl ciIpfHx0YXJnZXRfaWQpO319aWYoZCl0aGlzLmFyYml0ZXIuaW5mb3JtKGUuaWQr J19kaXNwbGF5ZWQnLHRydWUsQXJiaXRlci5CRUhBVklPUl9TVEFURSk7aWYoZS5j YWNoZV9oaXQpJChlLmlkKS5zdHlsZS5ib3JkZXI9IjFweCByZWQgc29saWQiO30s X2FwcGVuZE5vZGVzOmZ1bmN0aW9uKGEsZCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRl RWxlbWVudCgnZGl2Jyk7dmFyIGM9dWEuaWUoKTw3O2lmKGMpYS5hcHBlbmRDaGls ZChlKTtlLmlubmVySFRNTD1kO3ZhciBiPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50 RnJhZ21lbnQoKTt3aGlsZShlLmZpcnN0Q2hpbGQpYi5hcHBlbmRDaGlsZChlLmZp cnN0Q2hpbGQpO2EuYXBwZW5kQ2hpbGQoYik7aWYoYylhLnJlbW92ZUNoaWxkKGUp O30sX2Rvd25sb2FkSnNGb3JQYWdlbGV0OmZ1bmN0aW9uKGEpe0Jvb3Rsb2FkZXIu bG9hZFJlc291cmNlcyhhLmpzfHxbXSxiaW5kKHRoaXMsZnVuY3Rpb24oKXtpZih0 aGlzLl9pbnN0KXRoaXMuX2NhdmFscnkub25QYWdlbGV0RXZlbnQoJ2pzZG9uZScs YS5pZCk7YS5yZXF1aXJlcz1hLnJlcXVpcmVzfHxbXTtpZighdGhpcy5pc0FqYXh8 fGEucGhhc2U+PTEpYS5yZXF1aXJlcy5wdXNoKCd1aXBhZ2Vfb25sb2FkJyk7dmFy IGM9YmluZCh0aGlzLGZ1bmN0aW9uKCl7aWYoIXRoaXMuX2lzUmVsZXZhbnQoKSly ZXR1cm47aW52b2tlX2NhbGxiYWNrcyhhLm9ubG9hZCk7aWYodGhpcy5faW5zdCl0 aGlzLl9jYXZhbHJ5Lm9uUGFnZWxldEV2ZW50KCdvbmxvYWQnLGEuaWQpO3RoaXMu YXJiaXRlci5pbmZvcm0oJ3BhZ2VsZXRfb25sb2FkJyx0cnVlLEFyYml0ZXIuQkVI QVZJT1JfRVZFTlQpO2EucHJvdmlkZXMmJnRoaXMuYXJiaXRlci5pbmZvcm0oYS5w cm92aWRlcyx0cnVlLEFyYml0ZXIuQkVIQVZJT1JfU1RBVEUpO30pO3ZhciBiPWJp bmQodGhpcyxmdW5jdGlvbigpe3RoaXMuX2lzUmVsZXZhbnQoKSYmaW52b2tlX2Nh bGxiYWNrcyhhLm9uYWZ0ZXJsb2FkKTtpZihhLmNhY2hlYWJsZSYmIWEuY2FjaGVf aGl0KVBhZ2VsZXRDYWNoZS53cml0ZShhKTt9KTt0aGlzLmFyYml0ZXIucmVnaXN0 ZXJDYWxsYmFjayhjLGEucmVxdWlyZXMpO3RoaXMuYXJiaXRlci5yZWdpc3RlckNh bGxiYWNrKGIsW3RoaXMub25sb2FkRXZ0XSk7fSksZmFsc2UsYS5pZCk7fSxfZG93 bmxvYWRDc3NBbmREaXNwbGF5UGFnZWxldDpmdW5jdGlvbihjKXtpZih0aGlzLl9p bnN0KXRoaXMuX2NhdmFscnkub25QYWdlbGV0RXZlbnQoJ2NzcycsYy5pZCk7dmFy IGI9YmluZCh0aGlzLGZ1bmN0aW9uKCl7dmFyIGQ9Yy5kaXNwbGF5X2RlcGVuZGVu Y3l8fFtdO3ZhciBmPVtdO2Zvcih2YXIgZT0wO2U8ZC5sZW5ndGg7ZSsrKWYucHVz aChkW2VdKydfZGlzcGxheWVkJyk7dGhpcy5hcmJpdGVyLnJlZ2lzdGVyQ2FsbGJh Y2sodGhpcy5fZGlzcGxheVBhZ2VsZXQuYmluZCh0aGlzLGMpLGYpO30pO3ZhciBh PWMuY3NzfHxbXTtpZih0aGlzLmlzUmVwbGF5KXtCb290bG9hZGVyLmxvYWRSZXNv dXJjZXMoYSxudWxsLGZhbHNlLGMuaWQpO2IoKTt9ZWxzZSBCb290bG9hZGVyLmxv YWRSZXNvdXJjZXMoYSxiLGZhbHNlLGMuaWQpO30sb25QYWdlbGV0QXJyaXZlOmZ1 bmN0aW9uKGEpe2lmKHRoaXMuX2luc3QpdGhpcy5fY2F2YWxyeS5vblBhZ2VsZXRF dmVudCgnYXJyaXZlJyxhLmlkKTt2YXIgYj1hLnBoYXNlO2lmKCF0aGlzLl9waGFz ZURvbmVDYWxsYmFja3NbYl0pdGhpcy5fcGhhc2VEb25lQ2FsbGJhY2tzW2JdPXRo aXMuYXJiaXRlci5yZWdpc3RlckNhbGxiYWNrKHRoaXMuX29uUGhhc2VEb25lLmJp bmQodGhpcyksWydwaGFzZV9jb21wbGV0ZV8nK2JdKTt0aGlzLmFyYml0ZXIucmVn aXN0ZXJDYWxsYmFjayh0aGlzLl9waGFzZURvbmVDYWxsYmFja3NbYl0sW2EuaWQr J19kaXNwbGF5ZWQnXSk7aWYoYS5jYWNoZWFibGUmJmEuY2FjaGVfaGl0KXtBcmJp dGVyLnJlZ2lzdGVyQ2FsbGJhY2soZnVuY3Rpb24oKXt0aGlzLnByb2Nlc3NQYWdl bGV0KHRoaXMubG9hZEZyb21DYWNoZShhKSk7fS5iaW5kKHRoaXMpLFsncGFnZWxl dF9jYWNoZV9sb2FkZWQnXSk7fWVsc2UgdGhpcy5wcm9jZXNzUGFnZWxldChhKTt9 LHByb2Nlc3NQYWdlbGV0OmZ1bmN0aW9uKGIpe3ZhciBjPWIucGhhc2U7aWYoYi5w YWdlX2NhY2hlKXRoaXMuX2NhY2hlZF9wYWdlbGV0c1snaWRfJytiLmlkXT1iO2lm KGIudGhlX2VuZCl0aGlzLl9sYXN0UGhhc2U9Yi5waGFzZTtpZihiLnR0aV9waGFz ZSE9PXVuZGVmaW5lZCl0aGlzLl90dGlQaGFzZT1iLnR0aV9waGFzZTtiLmpzY2Mm Jmludm9rZV9jYWxsYmFja3MoW2IuanNjY10pO2IudHBsdHMmJkR5bmFUZW1wbGF0 ZS5yZWdpc3RlclRlbXBsYXRlcyhiLnRwbHRzKTtCb290bG9hZGVyLnNldFJlc291 cmNlTWFwKGIucmVzb3VyY2VfbWFwKTtCb290bG9hZGVyLmVuYWJsZUJvb3Rsb2Fk KHRoaXMuX2N0KGIuYm9vdGxvYWRhYmxlKSk7dGhpcy5hcmJpdGVyLnJlZ2lzdGVy Q2FsbGJhY2sodGhpcy5fZG93bmxvYWRDc3NBbmREaXNwbGF5UGFnZWxldC5iaW5k KHRoaXMsYiksWydwaGFzZV9iZWdpbl8nK2NdKTt2YXIgYTtpZighdGhpcy5qc05v bkJsb2NrKXthPXRoaXMuZG9tQ29udGVudEV2dDt9ZWxzZSBhPWIuaWQrJ19kaXNw bGF5ZWQnO3RoaXMuYXJiaXRlci5yZWdpc3RlckNhbGxiYWNrKHRoaXMub25sb2Fk Q2FsbGJhY2ssWydwYWdlbGV0X29ubG9hZCddKTt0aGlzLmFyYml0ZXIucmVnaXN0 ZXJDYWxsYmFjayh0aGlzLl9kb3dubG9hZEpzRm9yUGFnZWxldC5iaW5kKHRoaXMs YiksW2FdKTtiLmlzX2xhc3QmJnRoaXMuYXJiaXRlci5pbmZvcm0oJ3BoYXNlX2Nv bXBsZXRlXycrYyx0cnVlLEFyYml0ZXIuQkVIQVZJT1JfU1RBVEUpO2IuaW52YWxp ZGF0ZV9jYWNoZSYmYi5pbnZhbGlkYXRlX2NhY2hlLmxlbmd0aCYmQXJiaXRlci5p bmZvcm0oQXJiaXRlci5QQUdFQ0FDSEVfSU5WQUxJREFURSxiLmludmFsaWRhdGVf Y2FjaGUpO30sX29uUGhhc2VEb25lOmZ1bmN0aW9uKCl7aWYodGhpcy5fY3VycmVu dFBoYXNlPT09dGhpcy5fdHRpUGhhc2UmJnRoaXMucnJFbmFibGVkKXt0aGlzLmFy Yml0ZXIuaW5mb3JtKCd0dGlfYmlncGlwZScse3M6dGhpcy5saWR9LEFyYml0ZXIu QkVIQVZJT1JfRVZFTlQpO3RoaXMuX2NhdmFscnkmJnRoaXMuX2NhdmFscnkuc2V0 VFRJUGhhc2UodGhpcy5fdHRpUGhhc2UpLm1lYXN1cmVQYWdlTG9hZCh0cnVlKTt9 dmFyIGI9dGhpcy5fY3VycmVudFBoYXNlKzE7dmFyIGE9YmluZCh0aGlzLGZ1bmN0 aW9uKCl7dGhpcy5faW5zdCYmdGhpcy5fY2F2YWxyeS5zZXRUaW1lU3RhbXAoJ3Rf cGhhc2VfYmVnaW5fJytiKTt0aGlzLmFyYml0ZXIuaW5mb3JtKCdwaGFzZV9iZWdp bl8nK2IsdHJ1ZSxBcmJpdGVyLkJFSEFWSU9SX1NUQVRFKTt9KTtpZih0aGlzLmlz UmVwbGF5KXthKCk7fWVsc2Ugc2V0VGltZW91dChhLHRoaXMuX3RpbWVvdXQpO2lm KHRoaXMuX2N1cnJlbnRQaGFzZT09PXRoaXMuX2xhc3RQaGFzZSYmdGhpcy5faXNS ZWxldmFudCgpKXRoaXMuYXJiaXRlci5pbmZvcm0oJ3BhZ2VsZXRfZGlzcGxheWVk X2FsbCcsdHJ1ZSxBcmJpdGVyLkJFSEFWSU9SX1NUQVRFKTt0aGlzLl9jdXJyZW50 UGhhc2UrKzt9LF9pc1JlbGV2YW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM9PUJp Z1BpcGUuX2N1cnJlbnRfaW5zdGFuY2V8fHRoaXMuaXNSZXBsYXl8fHRoaXMuanNO b25CbG9ja3x8dGhpcy5mb3JjZUZpbmlzaDt9LGdldEFsbENhY2hlZFBhZ2VsZXRz OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhY2hlZF9wYWdlbGV0czt9fSk7CmZ1 bmN0aW9uIG5hbWVzcGFjZShlLGYpe3ZhciBkPWUuc3BsaXQoJy4nKSxhPTAsYj1k Lmxlbmd0aCxjPWZ8fHdpbmRvdztmb3IoO2E8YjthKyspe2lmKCFjW2RbYV1dKWNb ZFthXV09e307Yz1jW2RbYV1dO31yZXR1cm4gYzt9CmZ1bmN0aW9uIGluY29ycG9y YXRlX2ZyYWdtZW50KGEpe3ZhciBjPS9eKD86KD86W146XC8/I10rKTopPyg/Olwv XC8oPzpbXlwvPyNdKikpPyhbXj8jXSopKD86XD8oW14jXSopKT8oPzojKC4qKSk/ Lzt2YXIgYj0nJzthLmhyZWYucmVwbGFjZShjLGZ1bmN0aW9uKGQsZyxoLGYpe3Zh ciBlLGk7ZT1pPWcrKGg/Jz8nK2g6JycpO2lmKGYpe2Y9Zi5yZXBsYWNlKC9eKCF8 JTIxKS8sJycpO2lmKGYuY2hhckF0KDApPT0nLycpZT1mLnJlcGxhY2UoL15cLysv LCcvJyk7fWlmKGUhPWkpe2lmKHdpbmRvdy5fc2NyaXB0X3BhdGgpZG9jdW1lbnQu Y29va2llPSJyZGlyPSIrd2luZG93Ll9zY3JpcHRfcGF0aCsiOyBwYXRoPS87IGRv bWFpbj0iK3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZS5yZXBsYWNlKC9eLiooXC5m YWNlYm9va1wuLiopJC9pLCckMScpO3dpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKGIr ZSk7fX0pO31pZih3aW5kb3cuX3NjcmlwdF9wYXRoIT09dW5kZWZpbmVkKWluY29y cG9yYXRlX2ZyYWdtZW50KHdpbmRvdy5sb2NhdGlvbik7CiFmdW5jdGlvbigpe3Zh ciBiPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDt2YXIgYT1mdW5jdGlvbihjKXtj PWN8fHdpbmRvdy5ldmVudDt2YXIgZD1jLnRhcmdldHx8Yy5zcmNFbGVtZW50O3Zh ciBmPWQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpO2lmKGYpe3ZhciBlPVBh cmVudC5ieUNsYXNzKGQsJ2ZvY3VzX3RhcmdldCcpO2lmKCdmb2N1cyc9PWMudHlw ZXx8J2ZvY3VzaW4nPT1jLnR5cGUpe2lmKGQudmFsdWU9PWYmJkNTUy5oYXNDbGFz cyhkLCdET01Db250cm9sX3BsYWNlaG9sZGVyJykpe2QudmFsdWU9Jyc7Q1NTLnJl bW92ZUNsYXNzKGQsJ0RPTUNvbnRyb2xfcGxhY2Vob2xkZXInKTt9aWYoZSl7Q1NT LmFkZENsYXNzKGUsJ2NoaWxkX2lzX2FjdGl2ZScpO0NTUy5hZGRDbGFzcyhlLCdj aGlsZF9pc19mb2N1c2VkJyk7Q1NTLmFkZENsYXNzKGUsJ2NoaWxkX3dhc19mb2N1 c2VkJyk7QXJiaXRlci5pbmZvcm0oJ3JlZmxvdycpO319ZWxzZXtpZihkLnZhbHVl PT0nJyl7Q1NTLmFkZENsYXNzKGQsJ0RPTUNvbnRyb2xfcGxhY2Vob2xkZXInKTtk LnZhbHVlPWY7ZSYmQ1NTLnJlbW92ZUNsYXNzKGUsJ2NoaWxkX2lzX2FjdGl2ZScp O31lJiZDU1MucmVtb3ZlQ2xhc3MoZSwnY2hpbGRfaXNfZm9jdXNlZCcpO319fTtp ZihiLmFkZEV2ZW50TGlzdGVuZXIpe2IuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMn LGEsdHJ1ZSk7Yi5hZGRFdmVudExpc3RlbmVyKCdibHVyJyxhLHRydWUpO31lbHNl IGIub25mb2N1c2luPWIub25mb2N1c291dD1hO30oKTsKZG9jdW1lbnQuZG9jdW1l bnRFbGVtZW50Lm9ua2V5ZG93bj1mdW5jdGlvbihhKXthPWF8fHdpbmRvdy5ldmVu dDt2YXIgYj1hLnRhcmdldHx8YS5zcmNFbGVtZW50O3ZhciBjPWEua2V5Q29kZT09 MTMmJiFhLmFsdEtleSYmIWEuY3RybEtleSYmIWEubWV0YUtleSYmIWEuc2hpZnRL ZXkmJkNTUy5oYXNDbGFzcyhiLCdlbnRlcl9zdWJtaXQnKTtpZihjKXtCb290bG9h ZGVyLmxvYWRDb21wb25lbnRzKFsnZG9tJywnaW5wdXQtbWV0aG9kcyddLGZ1bmN0 aW9uKCl7aWYoIUlucHV0LmlzRW1wdHkoYikpe3ZhciBkPURPTS5zY3J5KGIuZm9y bSwnLmVudGVyX3N1Ym1pdF90YXJnZXQnKVswXXx8RE9NLnNjcnkoYi5mb3JtLCdb dHlwZT0ic3VibWl0Il0nKVswXTtkJiZkLmNsaWNrKCk7fX0pO3JldHVybiBmYWxz ZTt9fTsKZnVuY3Rpb24gZmNfY2xpY2soYSxiKXt1c2VyX2FjdGlvbihhLCd1Zmkn KTtmY19leHBhbmQoYSxiKTt9ZnVuY3Rpb24gZmNfZXhwYW5kKGEsYil7dmFyIGM9 UGFyZW50LmJ5VGFnKGEsJ2Zvcm0nKTtmY191bmNvbGxhcHNlKGMpO0NTUy5yZW1v dmVDbGFzcyhjLCdoaWRkZW5fYWRkX2NvbW1lbnQnKTtpZihiIT09ZmFsc2UpKGMu YWRkX2NvbW1lbnRfdGV4dF90ZXh0fHxjLmFkZF9jb21tZW50X3RleHQpLmZvY3Vz KCk7cmV0dXJuIGZhbHNlO31mdW5jdGlvbiBmY191bmNvbGxhcHNlKGEpe0NTUy5y ZW1vdmVDbGFzcyhhLCdjb2xsYXBzZWRfY29tbWVudHMnKTt9 ------------aE1bB7mWjKsLZBiYGCZAk5 Content-Disposition: inline; filename=ccPAy08Ly48.js Content-Type: application/x-javascript; charset=utf-8; name=ccPAy08Ly48.js Content-Location: http://static.ak.fbcdn.net/rsrc.php/v1/yn/r/ccPAy08Ly48.js Content-Transfer-Encoding: Base64 LyoxMzA4ODcxMTc0LDE2OTc3NjMxOSovCgppZiAod2luZG93LkNhdmFscnlMb2dn ZXIpIHsgQ2F2YWxyeUxvZ2dlci5zdGFydF9qcyhbIlFVTWpFIl0pOyB9CgpmdW5j dGlvbiBvYmplY3QoYil7dmFyIGE9bmV3IEZ1bmN0aW9uKCk7YS5wcm90b3R5cGU9 YjtyZXR1cm4gbmV3IGEoKTt9ZnVuY3Rpb24gaXNfc2NhbGFyKGEpe3JldHVybiAo L3N0cmluZ3xudW1iZXJ8Ym9vbGVhbi8pLnRlc3QodHlwZW9mIGEpO31mdW5jdGlv biBrZXlzKGMpe3ZhciBiPVtdO2Zvcih2YXIgYSBpbiBjKWIucHVzaChhKTtyZXR1 cm4gYjt9ZnVuY3Rpb24gdmFsdWVzKGIpe3ZhciBjPVtdO2Zvcih2YXIgYSBpbiBi KWMucHVzaChiW2FdKTtyZXR1cm4gYzt9ZnVuY3Rpb24gY291bnQoYyl7dmFyIGE9 MDtmb3IodmFyIGIgaW4gYylhKys7cmV0dXJuIGE7fWZ1bmN0aW9uIGFyZV9lcXVh bChhLGIpe3JldHVybiBKU09OLnN0cmluZ2lmeShhKT09SlNPTi5zdHJpbmdpZnko Yik7fWZ1bmN0aW9uIG1lcmdlKCl7dmFyIGI9e307Zm9yKHZhciBhPTA7YTxhcmd1 bWVudHMubGVuZ3RoO2ErKyljb3B5X3Byb3BlcnRpZXMoYixhcmd1bWVudHNbYV0p O3JldHVybiBiO31PYmplY3QuZnJvbT1mdW5jdGlvbihjLGUpe3ZhciBkPXt9O3Zh ciBiPWhhc0FycmF5TmF0dXJlKGUpO2lmKHR5cGVvZiBlPT0ndW5kZWZpbmVkJyll PXRydWU7Zm9yKHZhciBhPWMubGVuZ3RoO2EtLTspZFtjW2FdXT1iP2VbYV06ZTty ZXR1cm4gZDt9O2Z1bmN0aW9uIGNvYWxlc2NlKCl7Zm9yKHZhciBhPTA7YTxhcmd1 bWVudHMubGVuZ3RoOysrYSlpZihhcmd1bWVudHNbYV0hPW51bGwpcmV0dXJuIGFy Z3VtZW50c1thXTtyZXR1cm4gbnVsbDt9CiFmdW5jdGlvbigpe2Z1bmN0aW9uIGEo Yil7cmV0dXJuIGZ1bmN0aW9uKCl7aWYodGhpcz09PXdpbmRvdyl0aHJvdyBuZXcg VHlwZUVycm9yKCk7cmV0dXJuIGIuYXBwbHkodGhpcyxhcmd1bWVudHMpO307fWNv cHlfcHJvcGVydGllcyhBcnJheS5wcm90b3R5cGUse21hcDpmdW5jdGlvbihjLGIp e2lmKHRoaXM9PT13aW5kb3d8fHR5cGVvZiBjIT0nZnVuY3Rpb24nKXRocm93IG5l dyBUeXBlRXJyb3IoKTt2YXIgZDt2YXIgZT10aGlzLmxlbmd0aDt2YXIgZj1uZXcg QXJyYXkoZSk7Zm9yKGQ9MDtkPGU7KytkKWlmKGQgaW4gdGhpcylmW2RdPWMuY2Fs bChiLHRoaXNbZF0sZCx0aGlzKTtyZXR1cm4gZjt9LGZvckVhY2g6ZnVuY3Rpb24o YyxiKXt0aGlzLm1hcChjLGIpO3JldHVybiB0aGlzO30sZmlsdGVyOmZ1bmN0aW9u KGMsYil7Yz1jfHxmdW5jdGlvbihoKXtyZXR1cm4gaDt9O2lmKHRoaXM9PT13aW5k b3d8fHR5cGVvZiBjIT0nZnVuY3Rpb24nKXRocm93IG5ldyBUeXBlRXJyb3IoKTt2 YXIgZCxnLGU9dGhpcy5sZW5ndGgsZj1bXTtmb3IoZD0wO2Q8ZTsrK2QpaWYoZCBp biB0aGlzKXtnPXRoaXNbZF07aWYoYy5jYWxsKGIsZyxkLHRoaXMpKWYucHVzaChn KTt9cmV0dXJuIGY7fSxldmVyeTpmdW5jdGlvbihkLGMpe3ZhciBiPXRoaXMuZmls dGVyKGZ1bmN0aW9uKCl7cmV0dXJuIDE7fSk7cmV0dXJuICh0aGlzLmZpbHRlcihk LGMpLmxlbmd0aD09Yi5sZW5ndGgpO30sc29tZTpmdW5jdGlvbihjLGIpe3JldHVy biAodGhpcy5maWx0ZXIoYyxiKS5sZW5ndGg+MCk7fSxyZWR1Y2U6bnVsbCxyZWR1 Y2VSaWdodDpudWxsLHNvcnQ6YShBcnJheS5wcm90b3R5cGUuc29ydCkscmV2ZXJz ZTphKEFycmF5LnByb3RvdHlwZS5yZXZlcnNlKSxjb25jYXQ6YShBcnJheS5wcm90 b3R5cGUuY29uY2F0KSxzbGljZTphKEFycmF5LnByb3RvdHlwZS5zbGljZSksaW5k ZXhPZjphKEFycmF5LnByb3RvdHlwZS5pbmRleE9mfHxmdW5jdGlvbihkLGIpe3Zh ciBjPXRoaXMubGVuZ3RoO2J8PTA7aWYoYjwwKWIrPWM7Zm9yKDtiPGM7YisrKWlm KGIgaW4gdGhpcyYmdGhpc1tiXT09PWQpcmV0dXJuIGI7cmV0dXJuIC0xO30pLGNv bnRhaW5zOmZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmluZGV4T2YoYikhPS0xO30s cmVtb3ZlOmZ1bmN0aW9uKGMpe3ZhciBiPXRoaXMuaW5kZXhPZihjKTtpZihiIT0t MSl0aGlzLnNwbGljZShiLDEpO319KTtBcnJheS5wcm90b3R5cGUuZWFjaD1BcnJh eS5wcm90b3R5cGUuZm9yRWFjaDtBcnJheS5wcm90b3R5cGUuY2xvbmU9QXJyYXku cHJvdG90eXBlLnNsaWNlO30oKTsKZnVuY3Rpb24gbXVmZmluaXplKGQpe3ZhciBj PSdhJzt2YXIgYj0nZCc7dmFyIGE9W2MsYl0uam9pbignJyk7cmV0dXJuIGQucmVw bGFjZSgvbXVmZmluL2csYSk7fXdpbmRvdy5VdGlsPXdpbmRvdy5VdGlsfHx7d2Fy bjpiYWdvZmhvbGRpbmcsZXJyb3I6YmFnb2Zob2xkaW5nLGluZm86YmFnb2Zob2xk aW5nLGxvZzpiYWdvZmhvbGRpbmcsc3RhY2s6YmFnb2Zob2xkaW5nfTtpZih0eXBl b2YgY29uc29sZT09J3VuZGVmaW5lZCcpY29uc29sZT17bG9nOmJhZ29maG9sZGlu Z307CndpbmRvdy5vbmxvYWRSZWdpc3Rlcj1mdW5jdGlvbihhKXt3aW5kb3cubG9h ZGVkP19ydW5Ib29rKGEpOl9hZGRIb29rKCdvbmxvYWRob29rcycsYSk7fTtmdW5j dGlvbiBvbmFmdGVybG9hZFJlZ2lzdGVyKGEpe3dpbmRvdy5hZnRlcmxvYWRlZD9z ZXRUaW1lb3V0KGZ1bmN0aW9uKCl7X3J1bkhvb2soYSk7fSwwKTpfYWRkSG9vaygn b25hZnRlcmxvYWRob29rcycsYSk7fWZ1bmN0aW9uIF9vbmxvYWRIb29rKCl7IXdp bmRvdy5sb2FkZWQmJndpbmRvdy5DYXZhbHJ5TG9nZ2VyJiZDYXZhbHJ5TG9nZ2Vy LmdldEluc3RhbmNlKCkuc2V0VGltZVN0YW1wKCd0X3ByZWhvb2tzJyk7X3J1bkhv b2tzKCdvbmxvYWRob29rcycpOyF3aW5kb3cubG9hZGVkJiZ3aW5kb3cuQ2F2YWxy eUxvZ2dlciYmQ2F2YWxyeUxvZ2dlci5nZXRJbnN0YW5jZSgpLnNldFRpbWVTdGFt cCgndF9ob29rcycpO3dpbmRvdy5sb2FkZWQ9dHJ1ZTtBcmJpdGVyLmluZm9ybSgn dWlwYWdlX29ubG9hZCcsdHJ1ZSxBcmJpdGVyLkJFSEFWSU9SX1NUQVRFKTt9ZnVu Y3Rpb24gX29uYWZ0ZXJsb2FkSG9vaygpe19ydW5Ib29rcygnb25hZnRlcmxvYWRo b29rcycpO3dpbmRvdy5hZnRlcmxvYWRlZD10cnVlO31mdW5jdGlvbiBfcnVuSG9v ayhiKXt0cnl7cmV0dXJuIGIoKTt9Y2F0Y2goYSl7fX1mdW5jdGlvbiBfcnVuSG9v a3MoYil7dmFyIGQ9Yj09J29uYmVmb3JlbGVhdmVob29rcyd8fGI9PSdvbmJlZm9y ZXVubG9hZGhvb2tzJzt2YXIgZT1udWxsO2Rve3ZhciBhPXdpbmRvd1tiXTtpZigh ZCl3aW5kb3dbYl09bnVsbDtpZighYSlicmVhaztmb3IodmFyIGM9MDtjPGEubGVu Z3RoO2MrKylpZihkKXtlPWV8fF9ydW5Ib29rKGFbY10pO31lbHNlIF9ydW5Ib29r KGFbY10pO2lmKGQpYnJlYWs7fXdoaWxlKHdpbmRvd1tiXSk7aWYoZCYmZSlyZXR1 cm4gZTt9ZnVuY3Rpb24ga2VlcF93aW5kb3dfc2V0X2FzX2xvYWRlZCgpe2lmKHdp bmRvdy5sb2FkZWQ9PWZhbHNlKXt3aW5kb3cubG9hZGVkPXRydWU7X3J1bkhvb2tz KCdvbmxvYWRob29rcycpO31pZih3aW5kb3cuYWZ0ZXJsb2FkZWQ9PWZhbHNlKXt3 aW5kb3cuYWZ0ZXJsb2FkZWQ9dHJ1ZTtfcnVuSG9va3MoJ29uYWZ0ZXJsb2FkaG9v a3MnKTt9fUFyYml0ZXIucmVnaXN0ZXJDYWxsYmFjayhfb25sb2FkSG9vayxbT25s b2FkRXZlbnQuT05MT0FEX0RPTUNPTlRFTlRfQ0FMTEJBQ0ssSW5pdGlhbEpTTG9h ZGVyLklOSVRJQUxfSlNfUkVBRFldKTtBcmJpdGVyLnJlZ2lzdGVyQ2FsbGJhY2so X29uYWZ0ZXJsb2FkSG9vayxbT25sb2FkRXZlbnQuT05MT0FEX0RPTUNPTlRFTlRf Q0FMTEJBQ0ssT25sb2FkRXZlbnQuT05MT0FEX0NBTExCQUNLLEluaXRpYWxKU0xv YWRlci5JTklUSUFMX0pTX1JFQURZXSk7QXJiaXRlci5zdWJzY3JpYmUoT25sb2Fk RXZlbnQuT05CRUZPUkVVTkxPQUQsZnVuY3Rpb24oYixhKXthLndhcm49X3J1bkhv b2tzKCdvbmJlZm9yZWxlYXZlaG9va3MnKXx8X3J1bkhvb2tzKCdvbmJlZm9yZXVu bG9hZGhvb2tzJyk7aWYoIWEud2Fybil7d2luZG93LmxvYWRlZD1mYWxzZTt3aW5k b3cuYWZ0ZXJsb2FkZWQ9ZmFsc2U7fX0sQXJiaXRlci5TVUJTQ1JJQkVfTkVXKTtB cmJpdGVyLnN1YnNjcmliZShPbmxvYWRFdmVudC5PTlVOTE9BRCxmdW5jdGlvbihi LGEpe19ydW5Ib29rcygnb251bmxvYWRob29rcycpO30sQXJiaXRlci5TVUJTQ1JJ QkVfTkVXKTsKZnVuY3Rpb24gY2hhaW4oZCxlKXt2YXIgYixhPVtdO2Zvcih2YXIg Yz0wO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYS5wdXNoKGFyZ3VtZW50c1tjXSk7 Yj1mdW5jdGlvbihldmVudCl7ZXZlbnQ9ZXZlbnR8fHdpbmRvdy5ldmVudDtmb3Io dmFyIGY9MDtmPGEubGVuZ3RoO2YrKylpZihhW2ZdJiZhW2ZdLmFwcGx5KHRoaXMs YXJndW1lbnRzKT09PWZhbHNlKXtyZXR1cm4gZmFsc2U7fWVsc2UgaWYoZXZlbnQm JmV2ZW50LmNhbmNlbEJ1YmJsZSlyZXR1cm4gdHJ1ZTtyZXR1cm4gdHJ1ZTt9O2Iu dG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gY2hhaW4uX3RvU3RyaW5nKGEpO307 cmV0dXJuIGI7fWlmKCFjaGFpbi5fdG9TdHJpbmcpY2hhaW4uX3RvU3RyaW5nPWZ1 bmN0aW9uKGIpe3ZhciBkPSdjaGFpbmVkIGZucycsYT1iLmZpbHRlcigpO2Zvcih2 YXIgYz0wO2M8Yi5sZW5ndGg7YysrKWQrPSdcbicrYltjXS50b1N0cmluZygpO3Jl dHVybiBkO307CnZvaWQoMCk7CmZ1bmN0aW9uIEhUTUwoYSl7aWYoYSYmYS5fX2h0 bWwpYT1hLl9faHRtbDtpZih0aGlzPT09d2luZG93KXtpZihhIGluc3RhbmNlb2Yg SFRNTClyZXR1cm4gYTtyZXR1cm4gbmV3IEhUTUwoYSk7fXRoaXMuX2NvbnRlbnQ9 YTt0aGlzLl9kZWZlcj1mYWxzZTt0aGlzLl9leHRyYV9hY3Rpb249Jyc7dGhpcy5f bm9kZXM9bnVsbDt0aGlzLl9pbmxpbmVfanM9YmFnb2Zob2xkaW5nO3RoaXMuX2hh c19vcHRpb25fZWxlbWVudHM9ZmFsc2U7cmV0dXJuIHRoaXM7fUhUTUwuaXNIVE1M PWZ1bmN0aW9uKGEpe3JldHVybiBhJiYoYSBpbnN0YW5jZW9mIEhUTUx8fGEuX19o dG1sIT09dW5kZWZpbmVkKTt9O0hUTUwucmVwbGFjZUpTT05XcmFwcGVyPWZ1bmN0 aW9uKGEpe3JldHVybiBhJiZhLl9faHRtbCE9PXVuZGVmaW5lZD9uZXcgSFRNTChh Ll9faHRtbCk6YTt9O2NvcHlfcHJvcGVydGllcyhIVE1MLnByb3RvdHlwZSx7dG9T dHJpbmc6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9jb250ZW50fHwnJztpZih0aGlz Ll9leHRyYV9hY3Rpb24pYSs9JzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0 Ij4nK3RoaXMuX2V4dHJhX2FjdGlvbisnPC9zY3InKydpcHQ+JztyZXR1cm4gYTt9 LHNldEFjdGlvbjpmdW5jdGlvbihhKXt0aGlzLl9leHRyYV9hY3Rpb249YTtyZXR1 cm4gdGhpczt9LGdldEFjdGlvbjpmdW5jdGlvbigpe3RoaXMuX2ZpbGxDYWNoZSgp O3ZhciBhPWZ1bmN0aW9uKCl7dGhpcy5faW5saW5lX2pzKCk7ZXZhbF9nbG9iYWwo dGhpcy5fZXh0cmFfYWN0aW9uKTt9LmJpbmQodGhpcyk7aWYodGhpcy5nZXREZWZl cnJlZCgpKXtyZXR1cm4gYS5kZWZlci5iaW5kKGEpO31lbHNlIHJldHVybiBhO30s c2V0RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dGhpcy5fZGVmZXI9ISFhO3JldHVybiB0 aGlzO30sZ2V0RGVmZXJyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVmZXI7 fSxnZXRDb250ZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbnRlbnQ7fSxn ZXROb2RlczpmdW5jdGlvbigpe3RoaXMuX2ZpbGxDYWNoZSgpO3JldHVybiB0aGlz Ll9ub2Rlczt9LGdldFJvb3ROb2RlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0 Tm9kZXMoKVswXTt9LGhhc09wdGlvbkVsZW1lbnRzOmZ1bmN0aW9uKCl7dGhpcy5f ZmlsbENhY2hlKCk7cmV0dXJuIHRoaXMuX2hhc19vcHRpb25fZWxlbWVudHM7fSxf ZmlsbENhY2hlOmZ1bmN0aW9uKCl7aWYobnVsbCE9PXRoaXMuX25vZGVzKXJldHVy bjt2YXIgZD10aGlzLl9jb250ZW50O2lmKCFkKXt0aGlzLl9ub2Rlcz1bXTtyZXR1 cm47fWQ9ZC5yZXBsYWNlKC8oPChcdyspW14+XSo/KVwvPi9nLGZ1bmN0aW9uKGws bSxuKXtyZXR1cm4gbi5tYXRjaCgvXihhYmJyfGJyfGNvbHxpbWd8aW5wdXR8bGlu a3xtZXRhfHBhcmFtfGhyfGFyZWF8ZW1iZWQpJC9pKT9sOm0rJz48LycrbisnPic7 fSk7dmFyIGg9ZC50cmltKCkudG9Mb3dlckNhc2UoKSxrPWRvY3VtZW50LmNyZWF0 ZUVsZW1lbnQoJ2RpdicpLGI9ZmFsc2U7dmFyIGo9KCFoLmluZGV4T2YoJzxvcHQn KSYmWzEsJzxzZWxlY3QgbXVsdGlwbGU9Im11bHRpcGxlIiBjbGFzcz0iX19XUkFQ UEVSIj4nLCc8L3NlbGVjdD4nXSl8fCghaC5pbmRleE9mKCc8bGVnJykmJlsxLCc8 ZmllbGRzZXQgY2xhc3M9Il9fV1JBUFBFUiI+JywnPC9maWVsZHNldD4nXSl8fCho Lm1hdGNoKC9ePCh0aGVhZHx0Ym9keXx0Zm9vdHxjb2xnfGNhcCkvKSYmWzEsJzx0 YWJsZSBjbGFzcz0iX19XUkFQUEVSIj4nLCc8L3RhYmxlPiddKXx8KCFoLmluZGV4 T2YoJzx0cicpJiZbMiwnPHRhYmxlPjx0Ym9keSBjbGFzcz0iX19XUkFQUEVSIj4n LCc8L3Rib2R5PjwvdGFibGU+J10pfHwoKCFoLmluZGV4T2YoJzx0ZCcpfHwhaC5p bmRleE9mKCc8dGgnKSkmJlszLCc8dGFibGU+PHRib2R5Pjx0ciBjbGFzcz0iX19X UkFQUEVSIj4nLCc8L3RyPjwvdGJvZHk+PC90YWJsZT4nXSl8fCghaC5pbmRleE9m KCc8Y29sJykmJlsyLCc8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwIGNs YXNzPSJfX1dSQVBQRVIiPicsJzwvY29sZ3JvdXA+PC90YWJsZT4nXSl8fG51bGw7 aWYobnVsbD09PWope2suY2xhc3NOYW1lPSdfX1dSQVBQRVInO2lmKHVhLmllKCkp e2o9WzAsJzxzcGFuIHN0eWxlPSJkaXNwbGF5Om5vbmUiPiZuYnNwOzwvc3Bhbj4n LCcnXTtiPXRydWU7fWVsc2Ugaj1bMCwnJywnJ107fWsuaW5uZXJIVE1MPWpbMV0r ZCtqWzJdO3doaWxlKGpbMF0tLSlrPWsubGFzdENoaWxkO2lmKGIpay5yZW1vdmVD aGlsZChrLmZpcnN0Q2hpbGQpO2suY2xhc3NOYW1lIT0nX19XUkFQUEVSJztpZigw IT1rLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdvcHRpb24nKS5sZW5ndGgpdGhpcy5f aGFzX29wdGlvbl9lbGVtZW50cz10cnVlO2lmKHVhLmllKCkpe3ZhciBpO2lmKCFo LmluZGV4T2YoJzx0YWJsZScpJiYtMT09aC5pbmRleE9mKCc8dGJvZHknKSl7aT1r LmZpcnN0Q2hpbGQmJmsuZmlyc3RDaGlsZC5jaGlsZE5vZGVzO31lbHNlIGlmKGpb MV09PSc8dGFibGU+JyYmLTE9PWguaW5kZXhPZignPHRib2R5Jykpe2k9ay5jaGls ZE5vZGVzO31lbHNlIGk9W107Zm9yKHZhciBmPWkubGVuZ3RoLTE7Zj49MDstLWYp aWYoaVtmXS5ub2RlTmFtZSYmaVtmXS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT0n dGJvZHknJiZpW2ZdLmNoaWxkTm9kZXMubGVuZ3RoPT0wKWlbZl0ucGFyZW50Tm9k ZS5yZW1vdmVDaGlsZChpW2ZdKTt9dmFyIGc9ay5nZXRFbGVtZW50c0J5VGFnTmFt ZSgnc2NyaXB0Jyk7dmFyIGE9W107Zm9yKHZhciBlPTA7ZTxnLmxlbmd0aDtlKysp aWYoZ1tlXS5zcmMpe2EucHVzaChCb290bG9hZGVyLnJlcXVlc3RSZXNvdXJjZS5i aW5kKEJvb3Rsb2FkZXIsJ2pzJyxnW2VdLnNyYykpO31lbHNlIGEucHVzaChldmFs X2dsb2JhbC5iaW5kKG51bGwsZ1tlXS5pbm5lckhUTUwpKTtmb3IodmFyIGU9Zy5s ZW5ndGgtMTtlPj0wO2UtLSlnW2VdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZ1tl XSk7dmFyIGM9ZnVuY3Rpb24oKXtmb3IodmFyIGw9MDtsPGEubGVuZ3RoO2wrKylh W2xdKCk7fTt0aGlzLl9ub2Rlcz0kQShrLmNoaWxkTm9kZXMpO3RoaXMuX2lubGlu ZV9qcz1jO319KTsKdmFyIERPTT17ZmluZDpmdW5jdGlvbihhLGMpe3ZhciBiPURP TS5zY3J5KGEsYyk7cmV0dXJuIGJbMF07fSxzY3J5OmZ1bmN0aW9uKGosdil7aWYo IWopcmV0dXJuIFtdO3ZhciB3PXYuc3BsaXQoJyAnKTt2YXIgZD1bal07dmFyIGk9 aj09PWRvY3VtZW50O2Zvcih2YXIgbT0wO208dy5sZW5ndGg7bSsrKXtpZihkLmxl bmd0aD09MClicmVhaztpZih3W21dPT0nJyljb250aW51ZTt2YXIgdT13W21dO3Zh ciBzPVtdO3ZhciB6ZD1mYWxzZTtpZih1LmNoYXJBdCgwKT09J14nKWlmKG09PTAp e3pkPXRydWU7dT11LnNsaWNlKDEpO31lbHNlIHJldHVybjt1PXUucmVwbGFjZSgv XC4vZywnIC4nKTt1PXUucmVwbGFjZSgvXCMvZywnICMnKTt1PXUucmVwbGFjZSgv XFsvZywnIFsnKTt2YXIgej11LnNwbGl0KCcgJyk7dmFyIHphPXpbMF18fCcqJzt2 YXIgbj16WzFdJiZ6WzFdLmNoYXJBdCgwKT09JyMnO2lmKG4pe3ZhciBoPWdlKHpb MV0uc2xpY2UoMSksdHJ1ZSk7aWYoaCYmKCcqJz09emF8fGgudGFnTmFtZS50b0xv d2VyQ2FzZSgpPT16YSkpZm9yKHZhciBxPTA7cTxkLmxlbmd0aDtxKyspaWYoemQm JkRPTS5jb250YWlucyhoLGRbcV0pKXtzPVtoXTticmVhazt9ZWxzZSBpZihkb2N1 bWVudD09ZFtxXXx8RE9NLmNvbnRhaW5zKGRbcV0saCkpe3M9W2hdO2JyZWFrO319 ZWxzZXt2YXIgemM9W107dmFyIGM9ZC5sZW5ndGg7Zm9yKHZhciBvPTA7bzxjO28r Kyl7aWYoemQpe3ZhciBrPVtdO3ZhciBnPWRbb10ucGFyZW50Tm9kZTt2YXIgYT16 YT09JyonO3doaWxlKERPTS5pc05vZGUoZyxET00uTk9ERV9UWVBFUy5FTEVNRU5U KSl7aWYoYXx8Zy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PXphKWsucHVzaChnKTtn PWcucGFyZW50Tm9kZTt9fWVsc2UgdmFyIGs9ZFtvXS5nZXRFbGVtZW50c0J5VGFn TmFtZSh6YSk7dmFyIGw9ay5sZW5ndGg7Zm9yKHZhciByPTA7cjxsO3IrKyl6Yy5w dXNoKGtbcl0pO31mb3IodmFyIHg9MTt4PHoubGVuZ3RoO3grKyl7dmFyIHk9elt4 XTt2YXIgcD15LmNoYXJBdCgwKT09Jy4nO3ZhciBlPXkuc3Vic3RyaW5nKDEpO2Zv cih2YXIgbz0wO288emMubGVuZ3RoO28rKyl7dmFyIHpiPXpjW29dO2lmKCF6Yilj b250aW51ZTtpZihwKXtpZighQ1NTLmhhc0NsYXNzKHpiLGUpKWRlbGV0ZSB6Y1tv XTtjb250aW51ZTt9ZWxzZXt2YXIgZj15LnNsaWNlKDEseS5sZW5ndGgtMSk7aWYo Zi5pbmRleE9mKCc9Jyk9PS0xKXtpZih6Yi5nZXRBdHRyaWJ1dGUoZik9PT1udWxs KXtkZWxldGUgemNbb107Y29udGludWU7fX1lbHNle3ZhciB0PWYuc3BsaXQoJz0n KTt2YXIgYj10WzBdO3ZhciB6ZT10WzFdO3plPXplLnNsaWNlKDEsemUubGVuZ3Ro LTEpO2lmKHpiLmdldEF0dHJpYnV0ZShiKSE9emUpe2RlbGV0ZSB6Y1tvXTtjb250 aW51ZTt9fX19fWZvcih2YXIgbz0wO288emMubGVuZ3RoO28rKylpZih6Y1tvXSl7 cy5wdXNoKHpjW29dKTtpZih6ZClicmVhazt9fWQ9czt9cmV0dXJuIGQ7fSxnZXRU ZXh0OihmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp dicpLGI9YS5pbm5lclRleHQ9PW51bGw/J3RleHRDb250ZW50JzonaW5uZXJUZXh0 JztyZXR1cm4gZnVuY3Rpb24oYyl7aWYoIWMpe3JldHVybiAnJzt9ZWxzZSBpZihE T00uaXNOb2RlKGMsRE9NLk5PREVfVFlQRVMuVEVYVCkpe3JldHVybiBjLmRhdGE7 fWVsc2UgcmV0dXJuIGNbYl07fTt9KSgpLGdldFNlbGVjdGlvbjpmdW5jdGlvbigp e3ZhciBiPXdpbmRvdy5nZXRTZWxlY3Rpb24sYT1kb2N1bWVudC5zZWxlY3Rpb247 aWYoYil7cmV0dXJuIGIoKSsnJzt9ZWxzZSBpZihhKXJldHVybiBhLmNyZWF0ZVJh bmdlKCkudGV4dDtyZXR1cm4gbnVsbDt9LGNyZWF0ZTpmdW5jdGlvbihjLGEsYil7 Yz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGMpO2lmKGEpe2E9Y29weV9wcm9wZXJ0 aWVzKHt9LGEpO2lmKGEuc3R5bGUpe2NvcHlfcHJvcGVydGllcyhjLnN0eWxlLGEu c3R5bGUpO2RlbGV0ZSBhLnN0eWxlO31mb3IodmFyIGQgaW4gYSlpZihkLnRvTG93 ZXJDYXNlKCkuaW5kZXhPZignb24nKT09MCl7aWYoISh0eXBlb2YgYVtkXSE9J2Z1 bmN0aW9uJykpaWYod2luZG93LkV2ZW50JiZFdmVudC5saXN0ZW4pe0V2ZW50Lmxp c3RlbihjLGQuc3Vic3RyKDIpLGFbZF0pO31lbHNlIGNbZF09YVtkXTtkZWxldGUg YVtkXTt9Y29weV9wcm9wZXJ0aWVzKGMsYSk7fWlmKGIhPXVuZGVmaW5lZClET00u c2V0Q29udGVudChjLGIpO3JldHVybiBjO30scHJlcGVuZENvbnRlbnQ6ZnVuY3Rp b24oYyxiKXtpZighRE9NLmlzTm9kZShjKSl0aHJvdyBuZXcgRXJyb3IoJ0RPTS5w cmVwZW5kQ29udGVudDogcmVmZXJlbmNlIGVsZW1lbnQgaXMgbm90IGEgbm9kZScp O3ZhciBhPWZ1bmN0aW9uKGQpe2lmKGMuZmlyc3RDaGlsZCl7Yy5pbnNlcnRCZWZv cmUoZCxjLmZpcnN0Q2hpbGQpO31lbHNlIGMuYXBwZW5kQ2hpbGQoZCk7fTtyZXR1 cm4gRE9NLl9hZGRDb250ZW50KGIsYSxjKTt9LGluc2VydEFmdGVyOmZ1bmN0aW9u KGMsYil7aWYoIURPTS5pc05vZGUoYyl8fCFjLnBhcmVudE5vZGUpdGhyb3cgbmV3 IEVycm9yKCdET00uaW5zZXJ0QWZ0ZXI6IHJlZmVyZW5jZSBlbGVtZW50IGlzIG5v dCBhIG5vZGUnKTt2YXIgYT1mdW5jdGlvbihkKXtpZihjLm5leHRTaWJsaW5nKXtj LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGQsYy5uZXh0U2libGluZyk7fWVsc2Ug Yy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKGQpO307cmV0dXJuIERPTS5fYWRkQ29u dGVudChiLGEsYy5wYXJlbnROb2RlKTt9LGluc2VydEJlZm9yZTpmdW5jdGlvbihi LGMpe2lmKCFET00uaXNOb2RlKGMpfHwhYy5wYXJlbnROb2RlKXRocm93IG5ldyBF cnJvcignRE9NLmluc2VydEJlZm9yZTogcmVmZXJlbmNlIGVsZW1lbnQgaXMgbm90 IGEgbm9kZSBvciAnKydkb2VzIG5vdCBoYXZlIGEgcGFyZW50LicpO3ZhciBhPWZ1 bmN0aW9uKGQpe2MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZCxjKTt9O3JldHVy biBET00uX2FkZENvbnRlbnQoYixhLGMucGFyZW50Tm9kZSk7fSxzZXRDb250ZW50 OmZ1bmN0aW9uKGIsYSl7aWYoIURPTS5pc05vZGUoYikpdGhyb3cgbmV3IEVycm9y KCdET00uc2V0Q29udGVudDogcmVmZXJlbmNlIGVsZW1lbnQgaXMgbm90IGEgbm9k ZScpO0RPTS5lbXB0eShiKTtyZXR1cm4gRE9NLmFwcGVuZENvbnRlbnQoYixhKTt9 LGFwcGVuZENvbnRlbnQ6ZnVuY3Rpb24oYyxiKXtpZighRE9NLmlzTm9kZShjKSl0 aHJvdyBuZXcgRXJyb3IoJ0RPTS5hcHBlbmRDb250ZW50OiByZWZlcmVuY2UgZWxl bWVudCBpcyBub3QgYSBub2RlJyk7dmFyIGE9ZnVuY3Rpb24oZCl7Yy5hcHBlbmRD aGlsZChkKTt9O3JldHVybiBET00uX2FkZENvbnRlbnQoYixhLGMpO30scmVwbGFj ZTpmdW5jdGlvbihjLGIpe2lmKCFET00uaXNOb2RlKGMpfHwhYy5wYXJlbnROb2Rl KXRocm93IG5ldyBFcnJvcignRE9NLnJlcGxhY2U6IHJlZmVyZW5jZSBlbGVtZW50 IG11c3QgYmUgYSBub2RlIHdpdGggYScrJyBwYXJlbnQnKTt2YXIgYT1mdW5jdGlv bihkKXtjLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGQsYyk7fTtyZXR1cm4gRE9N Ll9hZGRDb250ZW50KGIsYSxjLnBhcmVudE5vZGUpO30scmVtb3ZlOmZ1bmN0aW9u KGEpe2E9JChhKTtpZihhLnBhcmVudE5vZGUpYS5wYXJlbnROb2RlLnJlbW92ZUNo aWxkKGEpO30sZW1wdHk6ZnVuY3Rpb24oYSl7YT0kKGEpO3doaWxlKGEuZmlyc3RD aGlsZClET00ucmVtb3ZlKGEuZmlyc3RDaGlsZCk7fSxjb250YWluczpmdW5jdGlv bihiLGEpe2I9Z2UoYik7YT1nZShhKTtpZighYnx8IWEpe3JldHVybiBmYWxzZTt9 ZWxzZSBpZihiPT09YSl7cmV0dXJuIHRydWU7fWVsc2UgaWYoRE9NLmlzTm9kZShi LCcjdGV4dCcpKXtyZXR1cm4gZmFsc2U7fWVsc2UgaWYoRE9NLmlzTm9kZShhLCcj dGV4dCcpKXtyZXR1cm4gRE9NLmNvbnRhaW5zKGIsYS5wYXJlbnROb2RlKTt9ZWxz ZSBpZihiLmNvbnRhaW5zKXtyZXR1cm4gYi5jb250YWlucyhhKTt9ZWxzZSBpZihi LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXtyZXR1cm4gISEoYi5jb21wYXJlRG9j dW1lbnRQb3NpdGlvbihhKSYxNik7fWVsc2UgcmV0dXJuIGZhbHNlO30sZ2V0Um9v dEVsZW1lbnQ6ZnVuY3Rpb24oKXt2YXIgYT1udWxsO2lmKHdpbmRvdy5RdWlja2xp bmcmJlF1aWNrbGluZy5pc0FjdGl2ZSgpKWE9Z2UoJ2NvbnRlbnQnKTtyZXR1cm4g YXx8ZG9jdW1lbnQuYm9keTt9LGlzTm9kZTpmdW5jdGlvbihkLGUpe2lmKHR5cGVv ZihOb2RlKT09J3VuZGVmaW5lZCcpTm9kZT1udWxsO3RyeXtpZighZHx8ISgoTm9k ZSE9dW5kZWZpbmVkJiZkIGluc3RhbmNlb2YgTm9kZSl8fGQubm9kZU5hbWUpKXJl dHVybiBmYWxzZTt9Y2F0Y2goYSl7cmV0dXJuIGZhbHNlO31pZih0eXBlb2YoZSkh PT0ndW5kZWZpbmVkJyl7ZT0kQShlKS5tYXAoZnVuY3Rpb24oZyl7cmV0dXJuIChn KycnKS50b1VwcGVyQ2FzZSgpO30pO3ZhciBjLGY7dHJ5e2M9bmV3IFN0cmluZyhk Lm5vZGVOYW1lKS50b1VwcGVyQ2FzZSgpO2Y9ZC5ub2RlVHlwZTt9Y2F0Y2goYSl7 cmV0dXJuIGZhbHNlO31mb3IodmFyIGI9MDtiPGUubGVuZ3RoO2IrKyl0cnl7aWYo Yz09ZVtiXXx8Zj09ZVtiXSlyZXR1cm4gdHJ1ZTt9Y2F0Y2goYSl7fXJldHVybiBm YWxzZTt9cmV0dXJuIHRydWU7fSxOT0RFX1RZUEVTOntFTEVNRU5UOjEsQVRUUklC VVRFOjIsVEVYVDozLENEQVRBX1NFQ1RJT046NCxFTlRJVFlfUkVGRVJFTkNFOjUs RU5USVRZOjYsUFJPQ0VTU0lOR19JTlNUUlVDVElPTjo3LENPTU1FTlQ6OCxET0NV TUVOVDo5LERPQ1VNRU5UX1RZUEU6MTAsRE9DVU1FTlRfRlJBR01FTlQ6MTEsTk9U QVRJT05fTk9ERToxMn0sX2FkZENvbnRlbnQ6ZnVuY3Rpb24oZCxhLG0pe2Q9SFRN TC5yZXBsYWNlSlNPTldyYXBwZXIoZCk7aWYoZCBpbnN0YW5jZW9mIEhUTUwmJi0x PT1kLnRvU3RyaW5nKCkuaW5kZXhPZignPHNjcicrJ2lwdCcpJiYnJz09bS5pbm5l ckhUTUwpe3ZhciBnPXVhLmllKCk7aWYoIWd8fChnPjcmJiFET00uaXNOb2RlKG0s Wyd0YWJsZScsJ3Rib2R5JywndGhlYWQnLCd0Zm9vdCcsJ3RyJywnc2VsZWN0Jywn ZmllbGRzZXQnXSkpKXt2YXIgaD1nPyI8ZGl2IHN0eWxlPVwiZGlzcGxheTpub25l O1wiPiZuYnNwOzwvZGl2PiI6IiI7bS5pbm5lckhUTUw9aCtkO2cmJm0ucmVtb3Zl Q2hpbGQobS5maXJzdENoaWxkKTtyZXR1cm4gJEEobS5jaGlsZE5vZGVzKTt9fWVs c2UgaWYoRE9NLmlzTm9kZShtLERPTS5OT0RFX1RZUEVTLlRFWFQpKXttLmRhdGE9 ZDtyZXR1cm4gW2RdO312YXIgaixlPVtdLGI9W107dmFyIGY9ZG9jdW1lbnQuY3Jl YXRlRG9jdW1lbnRGcmFnbWVudCgpO2lmKCEoZCBpbnN0YW5jZW9mIEFycmF5KSlk PVtkXTtmb3IodmFyIGk9MDtpPGQubGVuZ3RoO2krKyl7aj1IVE1MLnJlcGxhY2VK U09OV3JhcHBlcihkW2ldKTtpZihqIGluc3RhbmNlb2YgSFRNTCl7Yi5wdXNoKGou Z2V0QWN0aW9uKCkpO3ZhciBsPWouZ2V0Tm9kZXMoKSxjO2Zvcih2YXIgaz0wO2s8 bC5sZW5ndGg7aysrKXtjPSh1YS5zYWZhcmkoKXx8KHVhLmllKCkmJmouaGFzT3B0 aW9uRWxlbWVudHMoKSkpP2xba106bFtrXS5jbG9uZU5vZGUodHJ1ZSk7ZS5wdXNo KGMpO2YuYXBwZW5kQ2hpbGQoYyk7fX1lbHNlIGlmKGlzX3NjYWxhcihqKSl7dmFy IG49ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoaik7ZS5wdXNoKG4pO2YuYXBwZW5k Q2hpbGQobik7fWVsc2UgaWYoRE9NLmlzTm9kZShqKSl7ZS5wdXNoKGopO2YuYXBw ZW5kQ2hpbGQoaik7fWVsc2UgaWYoIShqIGluc3RhbmNlb2YgQXJyYXkpKWohPT1u dWxsO31hKGYpO2Zvcih2YXIgaT0wO2k8Yi5sZW5ndGg7aSsrKWJbaV0oKTtyZXR1 cm4gZTt9fTtmdW5jdGlvbiAkTihjLGEsYil7aWYodHlwZW9mIGEhPSdvYmplY3Qn fHxET00uaXNOb2RlKGEpfHxhIGluc3RhbmNlb2YgQXJyYXl8fEhUTUwuaXNIVE1M KGEpKXtiPWE7YT1udWxsO31yZXR1cm4gRE9NLmNyZWF0ZShjLGEsYik7fXZhciAk JD1mdW5jdGlvbiBfJCQoYSl7cmV0dXJuIERPTS5zY3J5LmFwcGx5KG51bGwsW2Rv Y3VtZW50XS5jb25jYXQoJEEoYXJndW1lbnRzKSkpO307CmZ1bmN0aW9uIFVSSShh KXtpZihhPT09d2luZG93KXJldHVybjtpZih0aGlzPT09d2luZG93KXJldHVybiBu ZXcgVVJJKGF8fHdpbmRvdy5sb2NhdGlvbi5ocmVmKTt0aGlzLnBhcnNlKGF8fCcn KTt9Y29weV9wcm9wZXJ0aWVzKFVSSSx7Z2V0UmVxdWVzdFVSSTpmdW5jdGlvbihh LGIpe2E9YT09PXVuZGVmaW5lZHx8YTtpZihhJiZ3aW5kb3cuUGFnZVRyYW5zaXRp b25zJiZQYWdlVHJhbnNpdGlvbnMuaXNJbml0aWFsaXplZCgpKXtyZXR1cm4gUGFn ZVRyYW5zaXRpb25zLmdldEN1cnJlbnRVUkkoISFiKS5nZXRRdWFsaWZpZWRVUkko KTt9ZWxzZSByZXR1cm4gbmV3IFVSSSh3aW5kb3cubG9jYXRpb24uaHJlZik7fSxn ZXRNb3N0UmVjZW50VVJJOmZ1bmN0aW9uKCl7aWYod2luZG93LlBhZ2VUcmFuc2l0 aW9ucyYmUGFnZVRyYW5zaXRpb25zLmlzSW5pdGlhbGl6ZWQoKSl7cmV0dXJuIFBh Z2VUcmFuc2l0aW9ucy5nZXRNb3N0UmVjZW50VVJJKCkuZ2V0UXVhbGlmaWVkVVJJ KCk7fWVsc2UgcmV0dXJuIG5ldyBVUkkod2luZG93LmxvY2F0aW9uLmhyZWYpO30s ZXhwcmVzc2lvbjovKCgoXHcrKTpcL1wvKShbXlwvOl0qKSg6KFxkKykpPyk/KFte Iz9dKikoXD8oW14jXSopKT8oIyguKikpPy8sYXJyYXlRdWVyeUV4cHJlc3Npb246 L14oXHcrKSgoPzpcW1x3KlxdKSspPT8oLiopLyxleHBsb2RlUXVlcnk6ZnVuY3Rp b24oZyl7aWYoIWcpcmV0dXJuIHt9O3ZhciBoPXt9O2c9Zy5yZXBsYWNlKC8lNUIv aWcsJ1snKS5yZXBsYWNlKC8lNUQvaWcsJ10nKTtnPWcuc3BsaXQoJyYnKTtmb3Io dmFyIGI9MCxkPWcubGVuZ3RoO2I8ZDtiKyspe3ZhciBlPWdbYl0ubWF0Y2goVVJJ LmFycmF5UXVlcnlFeHByZXNzaW9uKTtpZighZSl7dmFyIGo9Z1tiXS5zcGxpdCgn PScpO2hbVVJJLmRlY29kZUNvbXBvbmVudChqWzBdKV09alsxXT09PXVuZGVmaW5l ZD9udWxsOlVSSS5kZWNvZGVDb21wb25lbnQoalsxXSk7fWVsc2V7dmFyIGM9ZVsy XS5zcGxpdCgvXF1cW3xcW3xcXS8pLnNsaWNlKDAsLTEpO3ZhciBmPWVbMV07dmFy IGs9VVJJLmRlY29kZUNvbXBvbmVudChlWzNdfHwnJyk7Y1swXT1mO3ZhciBpPWg7 Zm9yKHZhciBhPTA7YTxjLmxlbmd0aC0xO2ErKylpZihjW2FdKXtpZihpW2NbYV1d PT09dW5kZWZpbmVkKWlmKGNbYSsxXSYmIWNbYSsxXS5tYXRjaCgvXGQrJC8pKXtp W2NbYV1dPXt9O31lbHNlIGlbY1thXV09W107aT1pW2NbYV1dO31lbHNle2lmKGNb YSsxXSYmIWNbYSsxXS5tYXRjaCgvXGQrJC8pKXtpLnB1c2goe30pO31lbHNlIGku cHVzaChbXSk7aT1pW2kubGVuZ3RoLTFdO31pZihpIGluc3RhbmNlb2YgQXJyYXkm JmNbYy5sZW5ndGgtMV09PScnKXtpLnB1c2goayk7fWVsc2UgaVtjW2MubGVuZ3Ro LTFdXT1rO319cmV0dXJuIGg7fSxpbXBsb2RlUXVlcnk6ZnVuY3Rpb24oZixlLGEp e2U9ZXx8Jyc7aWYoYT09PXVuZGVmaW5lZClhPXRydWU7dmFyIGc9W107aWYoZj09 PW51bGx8fGY9PT11bmRlZmluZWQpe2cucHVzaChhP1VSSS5lbmNvZGVDb21wb25l bnQoZSk6ZSk7fWVsc2UgaWYoZiBpbnN0YW5jZW9mIEFycmF5KXtmb3IodmFyIGM9 MDtjPGYubGVuZ3RoOysrYyl0cnl7aWYoZltjXSE9PXVuZGVmaW5lZClnLnB1c2go VVJJLmltcGxvZGVRdWVyeShmW2NdLGU/KGUrJ1snK2MrJ10nKTpjKSk7fWNhdGNo KGIpe319ZWxzZSBpZih0eXBlb2YoZik9PSdvYmplY3QnKXtpZihET00uaXNOb2Rl KGYpKXtnLnB1c2goJ3tub2RlfScpO31lbHNlIGZvcih2YXIgZCBpbiBmKXRyeXtp ZihmW2RdIT09dW5kZWZpbmVkKWcucHVzaChVUkkuaW1wbG9kZVF1ZXJ5KGZbZF0s ZT8oZSsnWycrZCsnXScpOmQpKTt9Y2F0Y2goYil7fX1lbHNlIGlmKGEpe2cucHVz aChVUkkuZW5jb2RlQ29tcG9uZW50KGUpKyc9JytVUkkuZW5jb2RlQ29tcG9uZW50 KGYpKTt9ZWxzZSBnLnB1c2goZSsnPScrZik7cmV0dXJuIGcuam9pbignJicpO30s ZW5jb2RlQ29tcG9uZW50OmZ1bmN0aW9uKGQpe3ZhciBjPVN0cmluZyhkKS5zcGxp dCgvKFtcW1xdXSkvKTtmb3IodmFyIGE9MCxiPWMubGVuZ3RoO2E8YjthKz0yKWNb YV09d2luZG93LmVuY29kZVVSSUNvbXBvbmVudChjW2FdKTtyZXR1cm4gYy5qb2lu KCcnKTt9LGRlY29kZUNvbXBvbmVudDpmdW5jdGlvbihhKXtyZXR1cm4gd2luZG93 LmRlY29kZVVSSUNvbXBvbmVudChhLnJlcGxhY2UoL1wrL2csJyAnKSk7fX0pO2Nv cHlfcHJvcGVydGllcyhVUkkucHJvdG90eXBlLHtwYXJzZTpmdW5jdGlvbihiKXt2 YXIgYT1iLnRvU3RyaW5nKCkubWF0Y2goVVJJLmV4cHJlc3Npb24pO2NvcHlfcHJv cGVydGllcyh0aGlzLHtwcm90b2NvbDphWzNdfHwnJyxkb21haW46YVs0XXx8Jycs cG9ydDphWzZdfHwnJyxwYXRoOmFbN118fCcnLHF1ZXJ5X3M6YVs5XXx8JycsZnJh Z21lbnQ6YVsxMV18fCcnfSk7cmV0dXJuIHRoaXM7fSxzZXRQcm90b2NvbDpmdW5j dGlvbihhKXt0aGlzLnByb3RvY29sPWE7cmV0dXJuIHRoaXM7fSxnZXRQcm90b2Nv bDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByb3RvY29sO30sc2V0UXVlcnlEYXRh OmZ1bmN0aW9uKGEpe3RoaXMucXVlcnlfcz1VUkkuaW1wbG9kZVF1ZXJ5KGEpO3Jl dHVybiB0aGlzO30sYWRkUXVlcnlEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlz LnNldFF1ZXJ5RGF0YShjb3B5X3Byb3BlcnRpZXModGhpcy5nZXRRdWVyeURhdGEo KSxhKSk7fSxyZW1vdmVRdWVyeURhdGE6ZnVuY3Rpb24oYil7aWYoIShiIGluc3Rh bmNlb2YgQXJyYXkpKWI9W2JdO3ZhciBkPXRoaXMuZ2V0UXVlcnlEYXRhKCk7Zm9y KHZhciBhPTAsYz1iLmxlbmd0aDthPGM7KythKWRlbGV0ZSBkW2JbYV1dO3JldHVy biB0aGlzLnNldFF1ZXJ5RGF0YShkKTt9LGdldFF1ZXJ5RGF0YTpmdW5jdGlvbigp e3JldHVybiBVUkkuZXhwbG9kZVF1ZXJ5KHRoaXMucXVlcnlfcyk7fSxzZXRGcmFn bWVudDpmdW5jdGlvbihhKXt0aGlzLmZyYWdtZW50PWE7cmV0dXJuIHRoaXM7fSxn ZXRGcmFnbWVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZyYWdtZW50O30sc2V0 RG9tYWluOmZ1bmN0aW9uKGEpe3RoaXMuZG9tYWluPWE7cmV0dXJuIHRoaXM7fSxn ZXREb21haW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21haW47fSxzZXRQb3J0 OmZ1bmN0aW9uKGEpe3RoaXMucG9ydD1hO3JldHVybiB0aGlzO30sZ2V0UG9ydDpm dW5jdGlvbigpe3JldHVybiB0aGlzLnBvcnQ7fSxzZXRQYXRoOmZ1bmN0aW9uKGEp e3RoaXMucGF0aD1hO3JldHVybiB0aGlzO30sZ2V0UGF0aDpmdW5jdGlvbigpe3Jl dHVybiB0aGlzLnBhdGgucmVwbGFjZSgvXlwvKy8sJy8nKTt9LHRvU3RyaW5nOmZ1 bmN0aW9uKCl7dmFyIGE9Jyc7dGhpcy5wcm90b2NvbCYmKGErPXRoaXMucHJvdG9j b2wrJzovLycpO3RoaXMuZG9tYWluJiYoYSs9dGhpcy5kb21haW4pO3RoaXMucG9y dCYmKGErPSc6Jyt0aGlzLnBvcnQpO2lmKHRoaXMuZG9tYWluJiYhdGhpcy5wYXRo KWErPScvJzt0aGlzLnBhdGgmJihhKz10aGlzLnBhdGgpO3RoaXMucXVlcnlfcyYm KGErPSc/Jyt0aGlzLnF1ZXJ5X3MpO3RoaXMuZnJhZ21lbnQmJihhKz0nIycrdGhp cy5mcmFnbWVudCk7cmV0dXJuIGE7fSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJu IHRoaXMudG9TdHJpbmcoKTt9LGlzRmFjZWJvb2tVUkk6ZnVuY3Rpb24oKXtpZigh VVJJLl9mYWNlYm9va1VSSVJlZ2V4KVVSSS5fZmFjZWJvb2tVUklSZWdleD1uZXcg UmVnRXhwKCcoXnxcXC4pZmFjZWJvb2tcXC5jb20oW14uXSopJCcsJ2knKTtyZXR1 cm4gKCF0aGlzLmRvbWFpbnx8VVJJLl9mYWNlYm9va1VSSVJlZ2V4LnRlc3QodGhp cy5kb21haW4pKTt9LGlzUXVpY2tsaW5nRW5hYmxlZDpmdW5jdGlvbigpe3JldHVy biB3aW5kb3cuUXVpY2tsaW5nJiZRdWlja2xpbmcuaXNBY3RpdmUoKSYmUXVpY2ts aW5nLmlzUGFnZUFjdGl2ZSh0aGlzKTt9LGdldFJlZ2lzdGVyZWREb21haW46ZnVu Y3Rpb24oKXtpZighdGhpcy5kb21haW4pcmV0dXJuICcnO2lmKCF0aGlzLmlzRmFj ZWJvb2tVUkkoKSlyZXR1cm4gbnVsbDt2YXIgYj10aGlzLmRvbWFpbi5zcGxpdCgn LicpO3ZhciBhPWIuaW5kZXhPZignZmFjZWJvb2snKTtyZXR1cm4gYi5zbGljZShh KS5qb2luKCcuJyk7fSxnZXRVbnF1YWxpZmllZFVSSTpmdW5jdGlvbigpe3JldHVy biBuZXcgVVJJKHRoaXMpLnNldFByb3RvY29sKG51bGwpLnNldERvbWFpbihudWxs KS5zZXRQb3J0KG51bGwpO30sZ2V0UXVhbGlmaWVkVVJJOmZ1bmN0aW9uKCl7dmFy IGI9bmV3IFVSSSh0aGlzKTtpZighYi5nZXREb21haW4oKSl7dmFyIGE9VVJJKCk7 Yi5zZXRQcm90b2NvbChhLmdldFByb3RvY29sKCkpLnNldERvbWFpbihhLmdldERv bWFpbigpKS5zZXRQb3J0KGEuZ2V0UG9ydCgpKTt9cmV0dXJuIGI7fSxpc1NhbWVP cmlnaW46ZnVuY3Rpb24oYSl7dmFyIGI9YXx8d2luZG93LmxvY2F0aW9uLmhyZWY7 aWYoIShiIGluc3RhbmNlb2YgVVJJKSliPW5ldyBVUkkoYi50b1N0cmluZygpKTtp Zih0aGlzLmdldFByb3RvY29sKCkmJnRoaXMuZ2V0UHJvdG9jb2woKSE9Yi5nZXRQ cm90b2NvbCgpKXJldHVybiBmYWxzZTtpZih0aGlzLmdldERvbWFpbigpJiZ0aGlz LmdldERvbWFpbigpIT1iLmdldERvbWFpbigpKXJldHVybiBmYWxzZTtyZXR1cm4g dHJ1ZTt9LGdvOmZ1bmN0aW9uKGEpe2dvVVJJKHRoaXMsYSk7fSxzZXRTdWJkb21h aW46ZnVuY3Rpb24oYil7dmFyIGM9bmV3IFVSSSh0aGlzKS5nZXRRdWFsaWZpZWRV UkkoKTt2YXIgYT1jLmdldERvbWFpbigpLnNwbGl0KCcuJyk7aWYoYS5sZW5ndGg8 PTIpe2EudW5zaGlmdChiKTt9ZWxzZSBhWzBdPWI7cmV0dXJuIGMuc2V0RG9tYWlu KGEuam9pbignLicpKTt9LGdldFN1YmRvbWFpbjpmdW5jdGlvbigpe2lmKCF0aGlz LmdldERvbWFpbigpKXJldHVybiAnJzt2YXIgYT10aGlzLmdldERvbWFpbigpLnNw bGl0KCcuJyk7aWYoYS5sZW5ndGg8PTIpe3JldHVybiAnJzt9ZWxzZSByZXR1cm4g YVswXTt9LHNldFNlY3VyZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5zZXRQcm90 b2NvbChhPydodHRwcyc6J2h0dHAnKTt9LGlzU2VjdXJlOmZ1bmN0aW9uKCl7cmV0 dXJuIHRoaXMuZ2V0UHJvdG9jb2woKT09J2h0dHBzJzt9fSk7ClN0cmluZy5wcm90 b3R5cGUudHJpbT1mdW5jdGlvbigpe2lmKHRoaXM9PXdpbmRvdylyZXR1cm4gbnVs bDtyZXR1cm4gdGhpcy5yZXBsYWNlKC9eXHMqfFxzKiQvZywnJyk7fTtmdW5jdGlv biB0cmltKGIpe3RyeXtyZXR1cm4gU3RyaW5nKGIudG9TdHJpbmcoKSkudHJpbSgp O31jYXRjaChhKXtyZXR1cm4gJyc7fX1TdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dp dGg9ZnVuY3Rpb24oYSl7aWYodGhpcz09d2luZG93KXJldHVybiBudWxsO3JldHVy biB0aGlzLnN1YnN0cmluZygwLGEubGVuZ3RoKT09YTt9O1N0cmluZy5wcm90b3R5 cGUuZW5kc1dpdGg9ZnVuY3Rpb24oYSl7aWYodGhpcz09d2luZG93KXJldHVybiBu dWxsO3JldHVybiB0aGlzLmxlbmd0aD49YS5sZW5ndGgmJnRoaXMuc3Vic3RyaW5n KHRoaXMubGVuZ3RoLWEubGVuZ3RoKT09YTt9O1N0cmluZy5wcm90b3R5cGUuaGFz aDMyPWZ1bmN0aW9uKCl7dmFyIGE9MjE2NjEzNjI2MTtmb3IodmFyIGI9MCxjPXRo aXMubGVuZ3RoO2I8YzsrK2IpYT0oYV50aGlzLmNoYXJDb2RlQXQoYikpKjE2Nzc3 NjE5O2ErPWE8PDEzO2FePWE+Pjc7YSs9YTw8MzthXj1hPj4xNzthKz1hPDw1O3Jl dHVybiAoYXwwKSsyMTQ3NDgzNjQ4O307U3RyaW5nLnByb3RvdHlwZS5zcGxpdD0o ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGgsZSl7dmFyIGI9IiI7aWYoaD09 PW51bGx8fGU9PT1udWxsKXtyZXR1cm4gW107fWVsc2UgaWYodHlwZW9mIGg9PSdz dHJpbmcnKXtyZXR1cm4gYS5jYWxsKHRoaXMsaCxlKTt9ZWxzZSBpZihoPT09dW5k ZWZpbmVkKXtyZXR1cm4gW3RoaXMudG9TdHJpbmcoKV07fWVsc2UgaWYoaCBpbnN0 YW5jZW9mIFJlZ0V4cCl7aWYoIWguXzJ8fCFoLl8xKXtiPWgudG9TdHJpbmcoKS5y ZXBsYWNlKC9eW1xTXHNdK1wvLywiIik7aWYoIWguXzEpaWYoIWguZ2xvYmFsKXto Ll8xPW5ldyBSZWdFeHAoaC5zb3VyY2UsImciK2IpO31lbHNlIGguXzE9MTt9c2Vw YXJhdG9yMT1oLl8xPT09MT9oOmguXzE7dmFyIGk9KGguXzI/aC5fMjpoLl8yPW5l dyBSZWdFeHAoIl4iK3NlcGFyYXRvcjEuc291cmNlKyIkIixiKSk7aWYoZT09PXVu ZGVmaW5lZHx8ZTwwKXtlPWZhbHNlO31lbHNle2U9TWF0aC5mbG9vcihlKTtpZigh ZSlyZXR1cm4gW107fXZhciBmLGc9W10sZD0wLGM9MDt3aGlsZSgoZT9jKys8PWU6 dHJ1ZSkmJihmPXNlcGFyYXRvcjEuZXhlYyh0aGlzKSkpe2lmKChmWzBdLmxlbmd0 aD09PTApJiYoc2VwYXJhdG9yMS5sYXN0SW5kZXg+Zi5pbmRleCkpc2VwYXJhdG9y MS5sYXN0SW5kZXgtLTtpZihzZXBhcmF0b3IxLmxhc3RJbmRleD5kKXtpZihmLmxl bmd0aD4xKWZbMF0ucmVwbGFjZShpLGZ1bmN0aW9uKCl7Zm9yKHZhciBqPTE7ajxh cmd1bWVudHMubGVuZ3RoLTI7aisrKWlmKGFyZ3VtZW50c1tqXT09PXVuZGVmaW5l ZClmW2pdPXVuZGVmaW5lZDt9KTtnPWcuY29uY2F0KHRoaXMuc3Vic3RyaW5nKGQs Zi5pbmRleCksKGYuaW5kZXg9PT10aGlzLmxlbmd0aD9bXTpmLnNsaWNlKDEpKSk7 ZD1zZXBhcmF0b3IxLmxhc3RJbmRleDt9aWYoZlswXS5sZW5ndGg9PT0wKXNlcGFy YXRvcjEubGFzdEluZGV4Kys7fXJldHVybiAoZD09PXRoaXMubGVuZ3RoKT8oc2Vw YXJhdG9yMS50ZXN0KCIiKT9nOmcuY29uY2F0KCIiKSk6KGU/ZzpnLmNvbmNhdCh0 aGlzLnN1YnN0cmluZyhkKSkpO31lbHNlIHJldHVybiBhLmNhbGwodGhpcyxoLGUp O307fSkoU3RyaW5nLnByb3RvdHlwZS5zcGxpdCk7CmFkZF9wcm9wZXJ0aWVzKCdD U1MnLHtzaG93bjpmdW5jdGlvbihhKXtyZXR1cm4gIUNTUy5oYXNDbGFzcyhhLCdo aWRkZW5fZWxlbScpO30sdG9nZ2xlOmZ1bmN0aW9uKGEpe0NTUy5jb25kaXRpb25T aG93KGEsIUNTUy5zaG93bihhKSk7fSxzZXRDbGFzczpmdW5jdGlvbihiLGEpeyQo YikuY2xhc3NOYW1lPWF8fCcnO3JldHVybiBiO30sc2V0U3R5bGU6ZnVuY3Rpb24o YSxiLGQpe3N3aXRjaChiKXtjYXNlICdvcGFjaXR5Jzp2YXIgYz0oZD09MSk7YS5z dHlsZS5vcGFjaXR5PWM/Jyc6JycrZDthLnN0eWxlLmZpbHRlcj1jPycnOidhbHBo YShvcGFjaXR5PScrZCoxMDArJyknO2JyZWFrO2Nhc2UgJ2Zsb2F0JzphLnN0eWxl LmNzc0Zsb2F0PWEuc3R5bGUuc3R5bGVGbG9hdD1kO2JyZWFrO2RlZmF1bHQ6Yj1i LnJlcGxhY2UoLy0oLikvZyxmdW5jdGlvbihlLGYpe3JldHVybiBmLnRvVXBwZXJD YXNlKCk7fSk7YS5zdHlsZVtiXT1kO31yZXR1cm4gYTt9LGdldFN0eWxlOmZ1bmN0 aW9uKGIsZCl7Yj0kKGIpO2Z1bmN0aW9uIGMoZSl7cmV0dXJuIGUucmVwbGFjZSgv KFtBLVpdKS9nLCctJDEnKS50b0xvd2VyQ2FzZSgpO31pZih3aW5kb3cuZ2V0Q29t cHV0ZWRTdHlsZSl7dmFyIGE9d2luZG93LmdldENvbXB1dGVkU3R5bGUoYixudWxs KTtpZihhKXJldHVybiBhLmdldFByb3BlcnR5VmFsdWUoYyhkKSk7fWlmKGRvY3Vt ZW50LmRlZmF1bHRWaWV3JiZkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRl ZFN0eWxlKXt2YXIgYT1kb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0 eWxlKGIsbnVsbCk7aWYoYSlyZXR1cm4gYS5nZXRQcm9wZXJ0eVZhbHVlKGMoZCkp O2lmKGQ9PSJkaXNwbGF5IilyZXR1cm4gIm5vbmUiO31pZihiLmN1cnJlbnRTdHls ZSlyZXR1cm4gYi5jdXJyZW50U3R5bGVbZF07cmV0dXJuIGIuc3R5bGVbZF07fSxn ZXRPcGFjaXR5OmZ1bmN0aW9uKGEpe2E9JChhKTt2YXIgYj1DU1MuZ2V0U3R5bGUo YSwnZmlsdGVyJyk7dmFyIGM9bnVsbDtpZihiJiYoYz0vKFxkKyg/OlwuXGQrKT8p Ly5leGVjKGIpKSl7cmV0dXJuIHBhcnNlRmxvYXQoYy5wb3AoKSkvMTAwO31lbHNl IGlmKGI9Q1NTLmdldFN0eWxlKGEsJ29wYWNpdHknKSl7cmV0dXJuIHBhcnNlRmxv YXQoYik7fWVsc2UgcmV0dXJuIDE7fX0pOwpmdW5jdGlvbiBhbmltYXRpb24oYSl7 aWYoYT09dW5kZWZpbmVkKXJldHVybjtpZih0aGlzPT13aW5kb3cpe3JldHVybiBu ZXcgYW5pbWF0aW9uKGEpO31lbHNle3RoaXMub2JqPWE7dGhpcy5fcmVzZXRfc3Rh dGUoKTt0aGlzLnF1ZXVlPVtdO3RoaXMubGFzdF9hdHRyPW51bGw7fX1hbmltYXRp b24ucmVzb2x1dGlvbj0yMDthbmltYXRpb24ub2Zmc2V0PTA7YW5pbWF0aW9uLnBy b3RvdHlwZS5fcmVzZXRfc3RhdGU9ZnVuY3Rpb24oKXt0aGlzLnN0YXRlPXthdHRy czp7fSxkdXJhdGlvbjo1MDB9O307YW5pbWF0aW9uLnByb3RvdHlwZS5zdG9wPWZ1 bmN0aW9uKCl7dGhpcy5fcmVzZXRfc3RhdGUoKTt0aGlzLnF1ZXVlPVtdO3JldHVy biB0aGlzO307YW5pbWF0aW9uLnByb3RvdHlwZS5fYnVpbGRfY29udGFpbmVyPWZ1 bmN0aW9uKCl7aWYodGhpcy5jb250YWluZXJfZGl2KXt0aGlzLl9yZWZyZXNoX2Nv bnRhaW5lcigpO3JldHVybjt9aWYodGhpcy5vYmouZmlyc3RDaGlsZCYmdGhpcy5v YmouZmlyc3RDaGlsZC5fX2FuaW1hdGlvbl9yZWZzKXt0aGlzLmNvbnRhaW5lcl9k aXY9dGhpcy5vYmouZmlyc3RDaGlsZDt0aGlzLmNvbnRhaW5lcl9kaXYuX19hbmlt YXRpb25fcmVmcysrO3RoaXMuX3JlZnJlc2hfY29udGFpbmVyKCk7cmV0dXJuO312 YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtiLnN0eWxlLnBhZGRp bmc9JzBweCc7Yi5zdHlsZS5tYXJnaW49JzBweCc7Yi5zdHlsZS5ib3JkZXI9JzBw eCc7Yi5fX2FuaW1hdGlvbl9yZWZzPTE7dmFyIGE9dGhpcy5vYmouY2hpbGROb2Rl czt3aGlsZShhLmxlbmd0aCliLmFwcGVuZENoaWxkKGFbMF0pO3RoaXMub2JqLmFw cGVuZENoaWxkKGIpO3RoaXMuX29yaWdfb3ZlcmZsb3c9dGhpcy5vYmouc3R5bGUu b3ZlcmZsb3c7dGhpcy5vYmouc3R5bGUub3ZlcmZsb3c9J2hpZGRlbic7dGhpcy5j b250YWluZXJfZGl2PWI7dGhpcy5fcmVmcmVzaF9jb250YWluZXIoKTt9O2FuaW1h dGlvbi5wcm90b3R5cGUuX3JlZnJlc2hfY29udGFpbmVyPWZ1bmN0aW9uKCl7dGhp cy5jb250YWluZXJfZGl2LnN0eWxlLmhlaWdodD0nYXV0byc7dGhpcy5jb250YWlu ZXJfZGl2LnN0eWxlLndpZHRoPSdhdXRvJzt0aGlzLmNvbnRhaW5lcl9kaXYuc3R5 bGUuaGVpZ2h0PXRoaXMuY29udGFpbmVyX2Rpdi5vZmZzZXRIZWlnaHQrJ3B4Jzt0 aGlzLmNvbnRhaW5lcl9kaXYuc3R5bGUud2lkdGg9dGhpcy5jb250YWluZXJfZGl2 Lm9mZnNldFdpZHRoKydweCc7fTthbmltYXRpb24ucHJvdG90eXBlLl9kZXN0cm95 X2NvbnRhaW5lcj1mdW5jdGlvbigpe2lmKCF0aGlzLmNvbnRhaW5lcl9kaXYpcmV0 dXJuO2lmKCEtLXRoaXMuY29udGFpbmVyX2Rpdi5fX2FuaW1hdGlvbl9yZWZzKXt2 YXIgYT10aGlzLmNvbnRhaW5lcl9kaXYuY2hpbGROb2Rlczt3aGlsZShhLmxlbmd0 aCl0aGlzLm9iai5hcHBlbmRDaGlsZChhWzBdKTt0aGlzLm9iai5yZW1vdmVDaGls ZCh0aGlzLmNvbnRhaW5lcl9kaXYpO310aGlzLmNvbnRhaW5lcl9kaXY9bnVsbDt0 aGlzLm9iai5zdHlsZS5vdmVyZmxvdz10aGlzLl9vcmlnX292ZXJmbG93O307YW5p bWF0aW9uLkFUVFJfVE89MTthbmltYXRpb24uQVRUUl9CWT0yO2FuaW1hdGlvbi5B VFRSX0ZST009MzthbmltYXRpb24ucHJvdG90eXBlLl9hdHRyPWZ1bmN0aW9uKGEs ZCxjKXthPWEucmVwbGFjZSgvLVthLXpdL2dpLGZ1bmN0aW9uKGUpe3JldHVybiBl LnN1YnN0cmluZygxKS50b1VwcGVyQ2FzZSgpO30pO3ZhciBiPWZhbHNlO3N3aXRj aChhKXtjYXNlICdiYWNrZ3JvdW5kJzp0aGlzLl9hdHRyKCdiYWNrZ3JvdW5kQ29s b3InLGQsYyk7cmV0dXJuIHRoaXM7Y2FzZSAnbWFyZ2luJzpkPWFuaW1hdGlvbi5w YXJzZV9ncm91cChkKTt0aGlzLl9hdHRyKCdtYXJnaW5Cb3R0b20nLGRbMF0sYyk7 dGhpcy5fYXR0cignbWFyZ2luTGVmdCcsZFsxXSxjKTt0aGlzLl9hdHRyKCdtYXJn aW5SaWdodCcsZFsyXSxjKTt0aGlzLl9hdHRyKCdtYXJnaW5Ub3AnLGRbM10sYyk7 cmV0dXJuIHRoaXM7Y2FzZSAncGFkZGluZyc6ZD1hbmltYXRpb24ucGFyc2VfZ3Jv dXAoZCk7dGhpcy5fYXR0cigncGFkZGluZ0JvdHRvbScsZFswXSxjKTt0aGlzLl9h dHRyKCdwYWRkaW5nTGVmdCcsZFsxXSxjKTt0aGlzLl9hdHRyKCdwYWRkaW5nUmln aHQnLGRbMl0sYyk7dGhpcy5fYXR0cigncGFkZGluZ1RvcCcsZFszXSxjKTtyZXR1 cm4gdGhpcztjYXNlICdiYWNrZ3JvdW5kQ29sb3InOmNhc2UgJ2JvcmRlckNvbG9y JzpjYXNlICdjb2xvcic6ZD1hbmltYXRpb24ucGFyc2VfY29sb3IoZCk7YnJlYWs7 Y2FzZSAnb3BhY2l0eSc6ZD1wYXJzZUZsb2F0KGQsMTApO2JyZWFrO2Nhc2UgJ2hl aWdodCc6Y2FzZSAnd2lkdGgnOmlmKGQ9PSdhdXRvJyl7Yj10cnVlO31lbHNlIGQ9 cGFyc2VJbnQoZCwxMCk7YnJlYWs7Y2FzZSAnYm9yZGVyV2lkdGgnOmNhc2UgJ2xp bmVIZWlnaHQnOmNhc2UgJ2ZvbnRTaXplJzpjYXNlICdtYXJnaW5Cb3R0b20nOmNh c2UgJ21hcmdpbkxlZnQnOmNhc2UgJ21hcmdpblJpZ2h0JzpjYXNlICdtYXJnaW5U b3AnOmNhc2UgJ3BhZGRpbmdCb3R0b20nOmNhc2UgJ3BhZGRpbmdMZWZ0JzpjYXNl ICdwYWRkaW5nUmlnaHQnOmNhc2UgJ3BhZGRpbmdUb3AnOmNhc2UgJ2JvdHRvbSc6 Y2FzZSAnbGVmdCc6Y2FzZSAncmlnaHQnOmNhc2UgJ3RvcCc6Y2FzZSAnc2Nyb2xs VG9wJzpjYXNlICdzY3JvbGxMZWZ0JzpkPXBhcnNlSW50KGQsMTApO2JyZWFrO2Rl ZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGErJyBpcyBub3QgYSBzdXBwb3J0ZWQgYXR0 cmlidXRlIScpO31pZih0aGlzLnN0YXRlLmF0dHJzW2FdPT09dW5kZWZpbmVkKXRo aXMuc3RhdGUuYXR0cnNbYV09e307aWYoYil0aGlzLnN0YXRlLmF0dHJzW2FdLmF1 dG89dHJ1ZTtzd2l0Y2goYyl7Y2FzZSBhbmltYXRpb24uQVRUUl9GUk9NOnRoaXMu c3RhdGUuYXR0cnNbYV0uc3RhcnQ9ZDticmVhaztjYXNlIGFuaW1hdGlvbi5BVFRS X0JZOnRoaXMuc3RhdGUuYXR0cnNbYV0uYnk9dHJ1ZTtjYXNlIGFuaW1hdGlvbi5B VFRSX1RPOnRoaXMuc3RhdGUuYXR0cnNbYV0udmFsdWU9ZDticmVhazt9fTthbmlt YXRpb24uX2dldF9ib3hfd2lkdGg9ZnVuY3Rpb24oYyl7dmFyIGQ9cGFyc2VJbnQo Q1NTLmdldFN0eWxlKGMsJ3BhZGRpbmdMZWZ0JyksMTApLGU9cGFyc2VJbnQoQ1NT LmdldFN0eWxlKGMsJ3BhZGRpbmdSaWdodCcpLDEwKSxhPXBhcnNlSW50KENTUy5n ZXRTdHlsZShjLCdib3JkZXJMZWZ0V2lkdGgnKSwxMCksYj1wYXJzZUludChDU1Mu Z2V0U3R5bGUoYywnYm9yZGVyUmlnaHRXaWR0aCcpLDEwKTtyZXR1cm4gYy5vZmZz ZXRXaWR0aC0oZD9kOjApLShlP2U6MCktKGE/YTowKS0oYj9iOjApO307YW5pbWF0 aW9uLl9nZXRfYm94X2hlaWdodD1mdW5jdGlvbihjKXt2YXIgZT1wYXJzZUludChD U1MuZ2V0U3R5bGUoYywncGFkZGluZ1RvcCcpLDEwKSxkPXBhcnNlSW50KENTUy5n ZXRTdHlsZShjLCdwYWRkaW5nQm90dG9tJyksMTApLGE9cGFyc2VJbnQoQ1NTLmdl dFN0eWxlKGMsJ2JvcmRlclRvcFdpZHRoJyksMTApLGI9cGFyc2VJbnQoQ1NTLmdl dFN0eWxlKGMsJ2JvcmRlckJvdHRvbVdpZHRoJyksMTApO3JldHVybiBjLm9mZnNl dEhlaWdodC0oZT9lOjApLShkP2Q6MCktKGE/YTowKS0oYj9iOjApO307YW5pbWF0 aW9uLnByb3RvdHlwZS50bz1mdW5jdGlvbihhLGIpe2lmKGI9PT11bmRlZmluZWQp e3RoaXMuX2F0dHIodGhpcy5sYXN0X2F0dHIsYSxhbmltYXRpb24uQVRUUl9UTyk7 fWVsc2V7dGhpcy5fYXR0cihhLGIsYW5pbWF0aW9uLkFUVFJfVE8pO3RoaXMubGFz dF9hdHRyPWE7fXJldHVybiB0aGlzO307YW5pbWF0aW9uLnByb3RvdHlwZS5ieT1m dW5jdGlvbihhLGIpe2lmKGI9PT11bmRlZmluZWQpe3RoaXMuX2F0dHIodGhpcy5s YXN0X2F0dHIsYSxhbmltYXRpb24uQVRUUl9CWSk7fWVsc2V7dGhpcy5fYXR0cihh LGIsYW5pbWF0aW9uLkFUVFJfQlkpO3RoaXMubGFzdF9hdHRyPWE7fXJldHVybiB0 aGlzO307YW5pbWF0aW9uLnByb3RvdHlwZS5mcm9tPWZ1bmN0aW9uKGEsYil7aWYo Yj09PXVuZGVmaW5lZCl7dGhpcy5fYXR0cih0aGlzLmxhc3RfYXR0cixhLGFuaW1h dGlvbi5BVFRSX0ZST00pO31lbHNle3RoaXMuX2F0dHIoYSxiLGFuaW1hdGlvbi5B VFRSX0ZST00pO3RoaXMubGFzdF9hdHRyPWE7fXJldHVybiB0aGlzO307YW5pbWF0 aW9uLnByb3RvdHlwZS5kdXJhdGlvbj1mdW5jdGlvbihhKXt0aGlzLnN0YXRlLmR1 cmF0aW9uPWE/YTowO3JldHVybiB0aGlzO307YW5pbWF0aW9uLnByb3RvdHlwZS5j aGVja3BvaW50PWZ1bmN0aW9uKGIsYSl7aWYoYj09PXVuZGVmaW5lZCliPTE7dGhp cy5zdGF0ZS5jaGVja3BvaW50PWI7dGhpcy5xdWV1ZS5wdXNoKHRoaXMuc3RhdGUp O3RoaXMuX3Jlc2V0X3N0YXRlKCk7dGhpcy5zdGF0ZS5jaGVja3BvaW50Y2I9YTty ZXR1cm4gdGhpczt9O2FuaW1hdGlvbi5wcm90b3R5cGUuYmxpbmQ9ZnVuY3Rpb24o KXt0aGlzLnN0YXRlLmJsaW5kPXRydWU7cmV0dXJuIHRoaXM7fTthbmltYXRpb24u cHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oKXt0aGlzLnN0YXRlLmhpZGU9dHJ1ZTty ZXR1cm4gdGhpczt9O2FuaW1hdGlvbi5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigp e3RoaXMuc3RhdGUuc2hvdz10cnVlO3JldHVybiB0aGlzO307YW5pbWF0aW9uLnBy b3RvdHlwZS5lYXNlPWZ1bmN0aW9uKGEpe3RoaXMuc3RhdGUuZWFzZT1hO3JldHVy biB0aGlzO307YW5pbWF0aW9uLnByb3RvdHlwZS5nbz1mdW5jdGlvbigpe3ZhciBi PShuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7dGhpcy5xdWV1ZS5wdXNoKHRoaXMuc3Rh dGUpO2Zvcih2YXIgYT0wO2E8dGhpcy5xdWV1ZS5sZW5ndGg7YSsrKXt0aGlzLnF1 ZXVlW2FdLnN0YXJ0PWItYW5pbWF0aW9uLm9mZnNldDtpZih0aGlzLnF1ZXVlW2Fd LmNoZWNrcG9pbnQpYis9dGhpcy5xdWV1ZVthXS5jaGVja3BvaW50KnRoaXMucXVl dWVbYV0uZHVyYXRpb247fWFuaW1hdGlvbi5wdXNoKHRoaXMpO3JldHVybiB0aGlz O307YW5pbWF0aW9uLnByb3RvdHlwZS5fc2hvdz1mdW5jdGlvbigpe0NTUy5zaG93 KHRoaXMub2JqKTt9O2FuaW1hdGlvbi5wcm90b3R5cGUuX2hpZGU9ZnVuY3Rpb24o KXtDU1MuaGlkZSh0aGlzLm9iaik7fTthbmltYXRpb24ucHJvdG90eXBlLl9mcmFt ZT1mdW5jdGlvbihsKXt2YXIgZD10cnVlO3ZhciBrPWZhbHNlO3ZhciBuPWZhbHNl O2Zvcih2YXIgZT0wO2U8dGhpcy5xdWV1ZS5sZW5ndGg7ZSsrKXt2YXIgYj10aGlz LnF1ZXVlW2VdO2lmKGIuc3RhcnQ+bCl7ZD1mYWxzZTtjb250aW51ZTt9aWYoYi5j aGVja3BvaW50Y2Ipe3RoaXMuX2NhbGxiYWNrKGIuY2hlY2twb2ludGNiLGwtYi5z dGFydCk7Yi5jaGVja3BvaW50Y2I9bnVsbDt9aWYoYi5zdGFydGVkPT09dW5kZWZp bmVkKXtpZihiLnNob3cpdGhpcy5fc2hvdygpO2Zvcih2YXIgYSBpbiBiLmF0dHJz KXtpZihiLmF0dHJzW2FdLnN0YXJ0IT09dW5kZWZpbmVkKWNvbnRpbnVlO3N3aXRj aChhKXtjYXNlICdiYWNrZ3JvdW5kQ29sb3InOmNhc2UgJ2JvcmRlckNvbG9yJzpj YXNlICdjb2xvcic6dmFyIG09YW5pbWF0aW9uLnBhcnNlX2NvbG9yKENTUy5nZXRT dHlsZSh0aGlzLm9iaixhPT0nYm9yZGVyQ29sb3InPydib3JkZXJMZWZ0Q29sb3In OmEpKTtpZihiLmF0dHJzW2FdLmJ5KXtiLmF0dHJzW2FdLnZhbHVlWzBdPU1hdGgu bWluKDI1NSxNYXRoLm1heCgwLGIuYXR0cnNbYV0udmFsdWVbMF0rbVswXSkpO2Iu YXR0cnNbYV0udmFsdWVbMV09TWF0aC5taW4oMjU1LE1hdGgubWF4KDAsYi5hdHRy c1thXS52YWx1ZVsxXSttWzFdKSk7Yi5hdHRyc1thXS52YWx1ZVsyXT1NYXRoLm1p bigyNTUsTWF0aC5tYXgoMCxiLmF0dHJzW2FdLnZhbHVlWzJdK21bMl0pKTt9YnJl YWs7Y2FzZSAnb3BhY2l0eSc6dmFyIG09Q1NTLmdldE9wYWNpdHkodGhpcy5vYmop O2lmKGIuYXR0cnNbYV0uYnkpYi5hdHRyc1thXS52YWx1ZT1NYXRoLm1pbigxLE1h dGgubWF4KDAsYi5hdHRyc1thXS52YWx1ZSttKSk7YnJlYWs7Y2FzZSAnaGVpZ2h0 Jzp2YXIgbT1hbmltYXRpb24uX2dldF9ib3hfaGVpZ2h0KHRoaXMub2JqKTtpZihi LmF0dHJzW2FdLmJ5KWIuYXR0cnNbYV0udmFsdWUrPW07YnJlYWs7Y2FzZSAnd2lk dGgnOnZhciBtPWFuaW1hdGlvbi5fZ2V0X2JveF93aWR0aCh0aGlzLm9iaik7aWYo Yi5hdHRyc1thXS5ieSliLmF0dHJzW2FdLnZhbHVlKz1tO2JyZWFrO2Nhc2UgJ3Nj cm9sbExlZnQnOmNhc2UgJ3Njcm9sbFRvcCc6dmFyIG09KHRoaXMub2JqPT1kb2N1 bWVudC5ib2R5KT8oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W2FdfHxkb2N1bWVu dC5ib2R5W2FdKTp0aGlzLm9ialthXTtpZihiLmF0dHJzW2FdLmJ5KWIuYXR0cnNb YV0udmFsdWUrPW07YlsnbGFzdCcrYV09bTticmVhaztkZWZhdWx0OnZhciBtPXBh cnNlSW50KENTUy5nZXRTdHlsZSh0aGlzLm9iaixhKSwxMCl8fDA7aWYoYi5hdHRy c1thXS5ieSliLmF0dHJzW2FdLnZhbHVlKz1tO2JyZWFrO31iLmF0dHJzW2FdLnN0 YXJ0PW07fWlmKChiLmF0dHJzLmhlaWdodCYmYi5hdHRycy5oZWlnaHQuYXV0byl8 fChiLmF0dHJzLndpZHRoJiZiLmF0dHJzLndpZHRoLmF1dG8pKXtpZih1YS5maXJl Zm94KCk8MyluPXRydWU7dGhpcy5fZGVzdHJveV9jb250YWluZXIoKTtmb3IodmFy IGEgaW4ge2hlaWdodDoxLHdpZHRoOjEsZm9udFNpemU6MSxib3JkZXJMZWZ0V2lk dGg6MSxib3JkZXJSaWdodFdpZHRoOjEsYm9yZGVyVG9wV2lkdGg6MSxib3JkZXJC b3R0b21XaWR0aDoxLHBhZGRpbmdMZWZ0OjEscGFkZGluZ1JpZ2h0OjEscGFkZGlu Z1RvcDoxLHBhZGRpbmdCb3R0b206MX0paWYoYi5hdHRyc1thXSl0aGlzLm9iai5z dHlsZVthXT1iLmF0dHJzW2FdLnZhbHVlKyh0eXBlb2YgYi5hdHRyc1thXS52YWx1 ZT09J251bWJlcic/J3B4JzonJyk7aWYoYi5hdHRycy5oZWlnaHQmJmIuYXR0cnMu aGVpZ2h0LmF1dG8pYi5hdHRycy5oZWlnaHQudmFsdWU9YW5pbWF0aW9uLl9nZXRf Ym94X2hlaWdodCh0aGlzLm9iaik7aWYoYi5hdHRycy53aWR0aCYmYi5hdHRycy53 aWR0aC5hdXRvKWIuYXR0cnMud2lkdGgudmFsdWU9YW5pbWF0aW9uLl9nZXRfYm94 X3dpZHRoKHRoaXMub2JqKTt9Yi5zdGFydGVkPXRydWU7aWYoYi5ibGluZCl0aGlz Ll9idWlsZF9jb250YWluZXIoKTt9dmFyIGg9KGwtYi5zdGFydCkvYi5kdXJhdGlv bjtpZihoPj0xKXtoPTE7aWYoYi5oaWRlKXRoaXMuX2hpZGUoKTt9ZWxzZSBkPWZh bHNlO3ZhciBqPWIuZWFzZT9iLmVhc2UoaCk6aDtpZighayYmaCE9MSYmYi5ibGlu ZClrPXRydWU7aWYobiYmdGhpcy5vYmoucGFyZW50Tm9kZSl7dmFyIGk9dGhpcy5v YmoucGFyZW50Tm9kZTt2YXIgZz10aGlzLm9iai5uZXh0U2libGluZztpLnJlbW92 ZUNoaWxkKHRoaXMub2JqKTt9Zm9yKHZhciBhIGluIGIuYXR0cnMpc3dpdGNoKGEp e2Nhc2UgJ2JhY2tncm91bmRDb2xvcic6Y2FzZSAnYm9yZGVyQ29sb3InOmNhc2Ug J2NvbG9yJzp0aGlzLm9iai5zdHlsZVthXT0ncmdiKCcrYW5pbWF0aW9uLmNhbGNf dHdlZW4oaixiLmF0dHJzW2FdLnN0YXJ0WzBdLGIuYXR0cnNbYV0udmFsdWVbMF0s dHJ1ZSkrJywnK2FuaW1hdGlvbi5jYWxjX3R3ZWVuKGosYi5hdHRyc1thXS5zdGFy dFsxXSxiLmF0dHJzW2FdLnZhbHVlWzFdLHRydWUpKycsJythbmltYXRpb24uY2Fs Y190d2VlbihqLGIuYXR0cnNbYV0uc3RhcnRbMl0sYi5hdHRyc1thXS52YWx1ZVsy XSx0cnVlKSsnKSc7YnJlYWs7Y2FzZSAnb3BhY2l0eSc6Q1NTLnNldFN0eWxlKHRo aXMub2JqLCdvcGFjaXR5JyxhbmltYXRpb24uY2FsY190d2VlbihqLGIuYXR0cnNb YV0uc3RhcnQsYi5hdHRyc1thXS52YWx1ZSkpO2JyZWFrO2Nhc2UgJ2hlaWdodCc6 Y2FzZSAnd2lkdGgnOnRoaXMub2JqLnN0eWxlW2FdPWo9PTEmJmIuYXR0cnNbYV0u YXV0bz8nYXV0byc6YW5pbWF0aW9uLmNhbGNfdHdlZW4oaixiLmF0dHJzW2FdLnN0 YXJ0LGIuYXR0cnNbYV0udmFsdWUsdHJ1ZSkrJ3B4JzticmVhaztjYXNlICdzY3Jv bGxMZWZ0JzpjYXNlICdzY3JvbGxUb3AnOnZhciBmPXRoaXMub2JqPT1kb2N1bWVu dC5ib2R5O3ZhciBtPShmKT8oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W2FdfHxk b2N1bWVudC5ib2R5W2FdKTp0aGlzLm9ialthXTtpZihiWydsYXN0JythXSE9bSl7 ZGVsZXRlIGIuYXR0cnNbYV07fWVsc2V7dmFyIGM9YW5pbWF0aW9uLmNhbGNfdHdl ZW4oaixiLmF0dHJzW2FdLnN0YXJ0LGIuYXR0cnNbYV0udmFsdWUsdHJ1ZSktbTtp ZighZil7dGhpcy5vYmpbYV09YyttO31lbHNlIGlmKGE9PSdzY3JvbGxMZWZ0Jyl7 d2luZG93LnNjcm9sbEJ5KGMsMCk7fWVsc2Ugd2luZG93LnNjcm9sbEJ5KDAsYyk7 YlsnbGFzdCcrYV09YyttO31icmVhaztkZWZhdWx0OnRoaXMub2JqLnN0eWxlW2Fd PWFuaW1hdGlvbi5jYWxjX3R3ZWVuKGosYi5hdHRyc1thXS5zdGFydCxiLmF0dHJz W2FdLnZhbHVlLHRydWUpKydweCc7YnJlYWs7fWlmKGg9PTEpe3RoaXMucXVldWUu c3BsaWNlKGUtLSwxKTt0aGlzLl9jYWxsYmFjayhiLm9uZG9uZSxsLWIuc3RhcnQt Yi5kdXJhdGlvbik7fX1pZihuKWlbZz8naW5zZXJ0QmVmb3JlJzonYXBwZW5kQ2hp bGQnXSh0aGlzLm9iaixnKTtpZighayYmdGhpcy5jb250YWluZXJfZGl2KXRoaXMu X2Rlc3Ryb3lfY29udGFpbmVyKCk7cmV0dXJuICFkO307YW5pbWF0aW9uLnByb3Rv dHlwZS5vbmRvbmU9ZnVuY3Rpb24oYSl7dGhpcy5zdGF0ZS5vbmRvbmU9YTtyZXR1 cm4gdGhpczt9O2FuaW1hdGlvbi5wcm90b3R5cGUuX2NhbGxiYWNrPWZ1bmN0aW9u KGEsYil7aWYoYSl7YW5pbWF0aW9uLm9mZnNldD1iO2EuY2FsbCh0aGlzKTthbmlt YXRpb24ub2Zmc2V0PTA7fX07YW5pbWF0aW9uLmNhbGNfdHdlZW49ZnVuY3Rpb24o YSxiLGMsZCl7cmV0dXJuIChkP3BhcnNlSW50OnBhcnNlRmxvYXQpKChjLWIpKmEr YiwxMCk7fTthbmltYXRpb24ucGFyc2VfY29sb3I9ZnVuY3Rpb24oYSl7dmFyIGI9 L14jKFthLWYwLTldezEsMn0pKFthLWYwLTldezEsMn0pKFthLWYwLTldezEsMn0p JC9pLmV4ZWMoYSk7aWYoYil7cmV0dXJuIFtwYXJzZUludChiWzFdLmxlbmd0aD09 MT9iWzFdK2JbMV06YlsxXSwxNikscGFyc2VJbnQoYlsyXS5sZW5ndGg9PTE/Ylsy XStiWzJdOmJbMl0sMTYpLHBhcnNlSW50KGJbM10ubGVuZ3RoPT0xP2JbM10rYlsz XTpiWzNdLDE2KV07fWVsc2V7dmFyIGM9L15yZ2JhPyAqXCgoWzAtOV0rKSwgKihb MC05XSspLCAqKFswLTldKykoPzosICooWzAtOV0rKSk/XCkkLy5leGVjKGEpO2lm KGMpe2lmKGNbNF09PT0nMCcpe3JldHVybiBbMjU1LDI1NSwyNTVdO31lbHNlIHJl dHVybiBbcGFyc2VJbnQoY1sxXSwxMCkscGFyc2VJbnQoY1syXSwxMCkscGFyc2VJ bnQoY1szXSwxMCldO31lbHNlIGlmKGE9PSd0cmFuc3BhcmVudCcpe3JldHVybiBb MjU1LDI1NSwyNTVdO31lbHNlIHRocm93ICdOYW1lZCBjb2xvciBhdHRyaWJ1dGVz IGFyZSBub3Qgc3VwcG9ydGVkLic7fX07YW5pbWF0aW9uLnBhcnNlX2dyb3VwPWZ1 bmN0aW9uKGEpe3ZhciBhPXRyaW0oYSkuc3BsaXQoLyArLyk7aWYoYS5sZW5ndGg9 PTQpe3JldHVybiBhO31lbHNlIGlmKGEubGVuZ3RoPT0zKXtyZXR1cm4gW2FbMF0s YVsxXSxhWzJdLGFbMV1dO31lbHNlIGlmKGEubGVuZ3RoPT0yKXtyZXR1cm4gW2Fb MF0sYVsxXSxhWzBdLGFbMV1dO31lbHNlIHJldHVybiBbYVswXSxhWzBdLGFbMF0s YVswXV07fTthbmltYXRpb24ucHVzaD1mdW5jdGlvbihhKXtpZighYW5pbWF0aW9u LmFjdGl2ZSlhbmltYXRpb24uYWN0aXZlPVtdO2FuaW1hdGlvbi5hY3RpdmUucHVz aChhKTtpZighYW5pbWF0aW9uLnRpbWVvdXQpYW5pbWF0aW9uLnRpbWVvdXQ9c2V0 SW50ZXJ2YWwoYW5pbWF0aW9uLmFuaW1hdGUuYmluZChhbmltYXRpb24pLGFuaW1h dGlvbi5yZXNvbHV0aW9uLGZhbHNlKTthbmltYXRpb24uYW5pbWF0ZSh0cnVlKTt9 O2FuaW1hdGlvbi5hbmltYXRlPWZ1bmN0aW9uKGMpe3ZhciBkPShuZXcgRGF0ZSgp KS5nZXRUaW1lKCk7Zm9yKHZhciBiPWM9PT10cnVlP2FuaW1hdGlvbi5hY3RpdmUu bGVuZ3RoLTE6MDtiPGFuaW1hdGlvbi5hY3RpdmUubGVuZ3RoO2IrKyl0cnl7aWYo IWFuaW1hdGlvbi5hY3RpdmVbYl0uX2ZyYW1lKGQpKWFuaW1hdGlvbi5hY3RpdmUu c3BsaWNlKGItLSwxKTt9Y2F0Y2goYSl7YW5pbWF0aW9uLmFjdGl2ZS5zcGxpY2Uo Yi0tLDEpO31pZihhbmltYXRpb24uYWN0aXZlLmxlbmd0aD09MCl7Y2xlYXJJbnRl cnZhbChhbmltYXRpb24udGltZW91dCk7YW5pbWF0aW9uLnRpbWVvdXQ9bnVsbDt9 fTthbmltYXRpb24uZWFzZT17fTthbmltYXRpb24uZWFzZS5iZWdpbj1mdW5jdGlv bihhKXtyZXR1cm4gTWF0aC5zaW4oTWF0aC5QSS8yKihhLTEpKSsxO307YW5pbWF0 aW9uLmVhc2UuZW5kPWZ1bmN0aW9uKGEpe3JldHVybiBNYXRoLnNpbiguNSpNYXRo LlBJKmEpO307YW5pbWF0aW9uLmVhc2UuYm90aD1mdW5jdGlvbihhKXtyZXR1cm4g LjUqTWF0aC5zaW4oTWF0aC5QSSooYS0uNSkpKy41O307YW5pbWF0aW9uLnByZXBl bmRJbnNlcnQ9ZnVuY3Rpb24oYixhKXthbmltYXRpb24uaW5zZXJ0KGIsYSxET00u cHJlcGVuZENvbnRlbnQpO307YW5pbWF0aW9uLmFwcGVuZEluc2VydD1mdW5jdGlv bihiLGEpe2FuaW1hdGlvbi5pbnNlcnQoYixhLERPTS5hcHBlbmRDb250ZW50KTt9 O2FuaW1hdGlvbi5pbnNlcnQ9ZnVuY3Rpb24oYyxhLGIpe0NTUy5zZXRTdHlsZShh LCdvcGFjaXR5JywwKTtiKGMsYSk7YW5pbWF0aW9uKGEpLmZyb20oJ29wYWNpdHkn LDApLnRvKCdvcGFjaXR5JywxKS5kdXJhdGlvbig0MDApLmdvKCk7fTsKdmFyIFhE PXtfY2FsbGJhY2tzOltdLF9vcHRzOnthdXRvUmVzaXplOmZhbHNlLGFsbG93U2hy aW5rOnRydWUsY2hhbm5lbFVybDpudWxsLGhpZGVPdmVyZmxvdzpmYWxzZSxuZXdS ZXNpemVNZXRob2Q6ZmFsc2UscmVzaXplVGltZW91dDoxMDAscmVzaXplV2lkdGg6 ZmFsc2UsZXhwZWN0UmVzaXplQWNrOmZhbHNlLHJlc2l6ZUFja1RpbWVvdXQ6NjAw MH0sX2xhc3RSZXNpemVBY2tJZDowLF9yZXNpemVDb3VudDowLF9yZXNpemVUaW1l c3RhbXA6MCxpbml0OmZ1bmN0aW9uKGEpe3RoaXMuX29wdHM9Y29weV9wcm9wZXJ0 aWVzKGNvcHlfcHJvcGVydGllcyh7fSx0aGlzLl9vcHRzKSxhKTtpZih0aGlzLl9v cHRzLmF1dG9SZXNpemUpdGhpcy5fc3RhcnRSZXNpemVNb25pdG9yKCk7QXJiaXRl ci5zdWJzY3JpYmUoJ0Nvbm5lY3QuVW5zYWZlLnJlc2l6ZS5hY2snLGZ1bmN0aW9u KGMsYil7aWYoIWIuaWQpYi5pZD10aGlzLl9yZXNpemVDb3VudDtpZihiLmlkPnRo aXMuX2xhc3RSZXNpemVBY2tJZCl0aGlzLl9sYXN0UmVzaXplQWNrSWQ9Yi5pZDt9 LmJpbmQodGhpcyksQXJiaXRlci5CRUhBVklPVVJfUEVSU0lTVEFOVCk7fSxzZW5k OmZ1bmN0aW9uKGIsYSl7YT1hfHx0aGlzLl9vcHRzLmNoYW5uZWxVcmw7aWYoIWEp cmV0dXJuO2lmKGEuc3Vic3RyKDAsNCkhPSdodHRwJylyZXR1cm47dmFyIGg9YSsn JicrVVJJLmltcGxvZGVRdWVyeShiKSxkPSdmJysoTWF0aC5yYW5kb20oKSooMTw8 MzApKS50b1N0cmluZygxNikucmVwbGFjZSgnLicsJycpLGM9ZG9jdW1lbnQuYm9k eS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSksZz1m YWxzZTtjLnN0eWxlLnBvc2l0aW9uPSdhYnNvbHV0ZSc7Yy5zdHlsZS50b3A9Jy0x MDAwMHB4JztjLnN0eWxlLndpZHRoPScxcHgnO2Muc3R5bGUuaGVpZ2h0PScxcHgn O1hELl9jYWxsYmFja3NbZF09ZnVuY3Rpb24oKXtpZihnKXsoZnVuY3Rpb24oKXtj LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYyk7fSkuZGVmZXIoMzAwMCk7ZGVsZXRl IFhELl9jYWxsYmFja3NbZF07fX07aWYodWEuaWUoKSl7dmFyIGU9KCc8aWZyYW1l ICcrJyBzcmM9IicraCsnIicrJyBvbmxvYWQ9IlhELl9jYWxsYmFja3MuJytkKyco KSInKyc+PC9pZnJhbWU+Jyk7Yy5pbm5lckhUTUw9JzxpZnJhbWUgc3JjPSJqYXZh c2NyaXB0OmZhbHNlIj48L2lmcmFtZT4nO2c9dHJ1ZTsoZnVuY3Rpb24oKXtjLmlu bmVySFRNTD1lO30pLmRlZmVyKCk7fWVsc2V7dmFyIGY9ZG9jdW1lbnQuY3JlYXRl RWxlbWVudCgnaWZyYW1lJyk7Zi5vbmxvYWQ9WEQuX2NhbGxiYWNrc1tkXTtjLmFw cGVuZENoaWxkKGYpO2c9dHJ1ZTtmLnNyYz1oO319LF9jb21wdXRlU2l6ZTpmdW5j dGlvbigpe3ZhciBhPWRvY3VtZW50LmJvZHksZT1kb2N1bWVudC5kb2N1bWVudEVs ZW1lbnQsaD0wLGY7aWYodGhpcy5fb3B0cy5uZXdSZXNpemVNZXRob2Qpe2Y9TWF0 aC5tYXgoTWF0aC5tYXgoYS5vZmZzZXRIZWlnaHQsYS5zY3JvbGxIZWlnaHQpK2Eu b2Zmc2V0VG9wLE1hdGgubWF4KGUub2Zmc2V0SGVpZ2h0LGUuc2Nyb2xsSGVpZ2h0 KStlLm9mZnNldFRvcCk7fWVsc2V7aWYodWEuaWUoKSl7Zj1NYXRoLm1heChhLm9m ZnNldEhlaWdodCxhLnNjcm9sbEhlaWdodCkrYS5vZmZzZXRUb3A7fWVsc2UgZj1l Lm9mZnNldEhlaWdodCtlLm9mZnNldFRvcDtpZih3aW5kb3cuRGlhbG9nKWY9TWF0 aC5tYXgoZixEaWFsb2cubWF4X2JvdHRvbSk7fWlmKHRoaXMuX29wdHMucmVzaXpl V2lkdGgpe2lmKGEub2Zmc2V0V2lkdGg8YS5zY3JvbGxXaWR0aCl7aD1hLnNjcm9s bFdpZHRoK2Eub2Zmc2V0TGVmdDt9ZWxzZXt2YXIgZD1hLmNoaWxkTm9kZXM7Zm9y KHZhciBnPTA7ZzxkLmxlbmd0aDtnKyspe3ZhciBiPWRbZ107dmFyIGM9Yi5vZmZz ZXRXaWR0aCtiLm9mZnNldExlZnQ7aWYoYz5oKWg9Yzt9fWlmKFhELmZvcmNlZF9t aW5fd2lkdGgpaD1NYXRoLm1heChoLFhELmZvcmNlZF9taW5fd2lkdGgpO2lmKGUu Y2xpZW50TGVmdD4wKWgrPShlLmNsaWVudExlZnQqMik7aWYoZS5jbGllbnRUb3A+ MClmKz0oZS5jbGllbnRUb3AqMik7fXJldHVybiB7d2lkdGg6aCxoZWlnaHQ6Zn07 fSxfc3RhcnRSZXNpemVNb25pdG9yOmZ1bmN0aW9uKCl7dmFyIGIsYT1kb2N1bWVu dC5kb2N1bWVudEVsZW1lbnQ7aWYodGhpcy5fb3B0cy5oaWRlT3ZlcmZsb3cpe2Eu c3R5bGUub3ZlcmZsb3c9J2hpZGRlbic7ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVy Zmxvdz0naGlkZGVuJzt9KGZ1bmN0aW9uKCl7dmFyIGY9dGhpcy5fY29tcHV0ZVNp emUoKTt2YXIgZz1uZXcgRGF0ZSgpLmdldFRpbWUoKTt2YXIgYz10aGlzLl9sYXN0 UmVzaXplQWNrSWQ8dGhpcy5fcmVzaXplQ291bnQmJihnLXRoaXMuX3Jlc2l6ZVRp bWVzdGFtcCk+dGhpcy5fb3B0cy5yZXNpemVBY2tUaW1lb3V0O2lmKCFifHwodGhp cy5fb3B0cy5leHBlY3RSZXNpemVBY2smJmMpfHwodGhpcy5fb3B0cy5hbGxvd1No cmluayYmYi53aWR0aCE9Zi53aWR0aCl8fCghdGhpcy5fb3B0cy5hbGxvd1Nocmlu ayYmYi53aWR0aDxmLndpZHRoKXx8KHRoaXMuX29wdHMuYWxsb3dTaHJpbmsmJmIu aGVpZ2h0IT1mLmhlaWdodCl8fCghdGhpcy5fb3B0cy5hbGxvd1NocmluayYmYi5o ZWlnaHQ8Zi5oZWlnaHQpKXtiPWY7dGhpcy5fcmVzaXplQ291bnQrKzt0aGlzLl9y ZXNpemVUaW1lc3RhbXA9Zzt2YXIgZT17dHlwZToncmVzaXplJyxoZWlnaHQ6Zi5o ZWlnaHQsYWNrRGF0YTp7aWQ6dGhpcy5fcmVzaXplQ291bnR9fTtpZihmLndpZHRo JiZmLndpZHRoIT0wKWUud2lkdGg9Zi53aWR0aDt0cnl7aWYoVVJJKGRvY3VtZW50 LnJlZmVycmVyKS5pc0ZhY2Vib29rVVJJKCkmJndpbmRvdy5wYXJlbnQhPXdpbmRv dyYmd2luZG93Lm5hbWUmJndpbmRvdy5wYXJlbnQubG9jYXRpb24mJlVSSSh3aW5k b3cucGFyZW50LmxvY2F0aW9uKS5pc0ZhY2Vib29rVVJJKCkpe3ZhciBpZnJhbWVz PXdpbmRvdy5wYXJlbnQuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lm cmFtZScpO2Zvcih2YXIgaT0wO2k8aWZyYW1lcy5sZW5ndGg7aT1pKzEpaWYoaWZy YW1lc1tpXS5uYW1lPT13aW5kb3cubmFtZSl7aWYodGhpcy5fb3B0cy5yZXNpemVX aWR0aClpZnJhbWVzW2ldLnN0eWxlLndpZHRoPWUud2lkdGgrJ3B4JztpZnJhbWVz W2ldLnN0eWxlLmhlaWdodD1lLmhlaWdodCsncHgnO319dGhpcy5zZW5kKGUpO31j YXRjaChkKXt0aGlzLnNlbmQoZSk7fX19KS5iaW5kKHRoaXMpLnJlY3VyKHRoaXMu X29wdHMucmVzaXplVGltZW91dCk7fX07dmFyIFVudmVyaWZpZWRYRD1jb3B5X3By b3BlcnRpZXMoe30sWEQpOwpEYXRhU3RvcmU9d2luZG93LkRhdGFTdG9yZXx8e19z dG9yYWdlOnt9LF9lbGVtZW50czp7fSxfdG9rZW5Db3VudGVyOjEsX05PVF9JTl9E T01fQ09OU1Q6MSxfZ2V0U3RvcmFnZTpmdW5jdGlvbihhKXt2YXIgYjtpZih0eXBl b2YgYT09J3N0cmluZycpe2I9J3N0cl8nK2E7fWVsc2V7Yj0nZWxlbV8nKyhhLl9f RkJfVE9LRU58fChhLl9fRkJfVE9LRU49W0RhdGFTdG9yZS5fdG9rZW5Db3VudGVy KytdKSlbMF07RGF0YVN0b3JlLl9lbGVtZW50c1tiXT1hO31yZXR1cm4gRGF0YVN0 b3JlLl9zdG9yYWdlW2JdfHwoRGF0YVN0b3JlLl9zdG9yYWdlW2JdPXt9KTt9LF9z aG91bGREZWxldGVEYXRhOmZ1bmN0aW9uKGEpe2lmKCFhLm5vZGVOYW1lKXJldHVy biBmYWxzZTt0cnl7aWYobnVsbCE9YS5vZmZzZXRQYXJlbnQpcmV0dXJuIGZhbHNl O31jYXRjaChiKXt9aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5z KXtyZXR1cm4gIWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jb250YWlucyhhKTt9 ZWxzZSByZXR1cm4gKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jb21wYXJlRG9j dW1lbnRQb3NpdGlvbihhKSZEYXRhU3RvcmUuX05PVF9JTl9ET01fQ09OU1QpO30s c2V0OmZ1bmN0aW9uKGMsYixkKXt2YXIgYT1EYXRhU3RvcmUuX2dldFN0b3JhZ2Uo Yyk7YVtiXT1kO3JldHVybiBjO30sZ2V0OmZ1bmN0aW9uKGUsZCxjKXt2YXIgYj1E YXRhU3RvcmUuX2dldFN0b3JhZ2UoZSksZj1iW2RdO2lmKHR5cGVvZiBmPT09J3Vu ZGVmaW5lZCcmJmUuZ2V0QXR0cmlidXRlKXt2YXIgYT1lLmdldEF0dHJpYnV0ZSgn ZGF0YS0nK2QpO2Y9KG51bGw9PT1hKT91bmRlZmluZWQ6YTt9aWYoKGMhPT11bmRl ZmluZWQpJiYoZj09PXVuZGVmaW5lZCkpZj1iW2RdPWM7cmV0dXJuIGY7fSxyZW1v dmU6ZnVuY3Rpb24oYyxiKXt2YXIgYT1EYXRhU3RvcmUuX2dldFN0b3JhZ2UoYyks ZD1hW2JdO2RlbGV0ZSBhW2JdO3JldHVybiBkO30sY2xlYW51cDpmdW5jdGlvbigp e3ZhciBiLGE7Zm9yKGIgaW4gRGF0YVN0b3JlLl9lbGVtZW50cyl7YT1EYXRhU3Rv cmUuX2VsZW1lbnRzW2JdO2lmKERhdGFTdG9yZS5fc2hvdWxkRGVsZXRlRGF0YShh KSl7ZGVsZXRlIERhdGFTdG9yZS5fc3RvcmFnZVtiXTtkZWxldGUgRGF0YVN0b3Jl Ll9lbGVtZW50c1tiXTt9fX19OwpFdmVudC5EQVRBU1RPUkVfS0VZPSdFdmVudC5s aXN0ZW5lcnMnO2lmKCFFdmVudC5wcm90b3R5cGUpRXZlbnQucHJvdG90eXBlPXt9 O2Z1bmN0aW9uICRFKGEpe2E9YXx8d2luZG93LmV2ZW50fHx7fTtpZighYS5faW5o ZXJpdHNfZnJvbV9wcm90b3R5cGUpZm9yKHZhciBjIGluIEV2ZW50LnByb3RvdHlw ZSl0cnl7YVtjXT1FdmVudC5wcm90b3R5cGVbY107fWNhdGNoKGIpe31yZXR1cm4g YTt9KGZ1bmN0aW9uKCl7Y29weV9wcm9wZXJ0aWVzKEV2ZW50LnByb3RvdHlwZSx7 X2luaGVyaXRzX2Zyb21fcHJvdG90eXBlOnRydWUsc3RvcDpmdW5jdGlvbigpe3Ro aXMuY2FuY2VsQnViYmxlPXRydWU7dGhpcy5zdG9wUHJvcGFnYXRpb24mJnRoaXMu c3RvcFByb3BhZ2F0aW9uKCk7cmV0dXJuIHRoaXM7fSxwcmV2ZW50OmZ1bmN0aW9u KCl7dGhpcy5yZXR1cm5WYWx1ZT1mYWxzZTt0aGlzLnByZXZlbnREZWZhdWx0JiZ0 aGlzLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIHRoaXM7fSxraWxsOmZ1bmN0aW9u KCl7dGhpcy5zdG9wKCkucHJldmVudCgpO3JldHVybiBmYWxzZTt9LGdldFRhcmdl dDpmdW5jdGlvbigpe3ZhciBnPXRoaXMudGFyZ2V0fHx0aGlzLnNyY0VsZW1lbnQ7 cmV0dXJuIGc/JChnKTpudWxsO30sZ2V0UmVsYXRlZFRhcmdldDpmdW5jdGlvbigp e3ZhciBnPXRoaXMucmVsYXRlZFRhcmdldHx8dGhpcy5mcm9tRWxlbWVudDtyZXR1 cm4gZz8kKGcpOm51bGw7fSxnZXRNb2RpZmllcnM6ZnVuY3Rpb24oKXt2YXIgZz17 Y29udHJvbDohIXRoaXMuY3RybEtleSxzaGlmdDohIXRoaXMuc2hpZnRLZXksYWx0 OiEhdGhpcy5hbHRLZXksbWV0YTohIXRoaXMubWV0YUtleX07Zy5hY2Nlc3M9dWEu b3N4KCk/Zy5jb250cm9sOmcuYWx0O2cuYW55PWcuY29udHJvbHx8Zy5zaGlmdHx8 Zy5hbHR8fGcubWV0YTtyZXR1cm4gZzt9fSk7Y29weV9wcm9wZXJ0aWVzKEV2ZW50 LHtsaXN0ZW46ZnVuY3Rpb24oaCxwLGosbSl7aWYodHlwZW9mIGg9PSdzdHJpbmcn KWg9JChoKTtpZih0eXBlb2YgbT09J3VuZGVmaW5lZCcpbT1FdmVudC5Qcmlvcml0 eS5OT1JNQUw7aWYodHlwZW9mIHA9PSdvYmplY3QnKXt2YXIgaT17fTtmb3IodmFy IG8gaW4gcClpW29dPUV2ZW50Lmxpc3RlbihoLG8scFtvXSxtKTtyZXR1cm4gaTt9 aWYocC5tYXRjaCgvXm9uL2kpKXRocm93IG5ldyBUeXBlRXJyb3IoIkJhZCBldmVu dCBuYW1lIGAiK2V2ZW50KyInOiB1c2UgYGNsaWNrJywgbm90IGBvbmNsaWNrJy4i KTtwPXAudG9Mb3dlckNhc2UoKTt2YXIgaz1EYXRhU3RvcmUuZ2V0KGgsYix7fSk7 aWYoZltwXSl7dmFyIGc9ZltwXTtwPWcuYmFzZTtqPWcud3JhcChqKTt9YShoLHAp O3ZhciBxPWtbcF07aWYoIShtIGluIHEpKXFbbV09W107dmFyIGw9cVttXS5sZW5n dGgsbj1uZXcgRXZlbnRIYW5kbGVyUmVmKGoscVttXSxsKTtxW21dLnB1c2gobik7 cmV0dXJuIG47fSxzdG9wOmZ1bmN0aW9uKGcpe3JldHVybiAkRShnKS5zdG9wKCk7 fSxwcmV2ZW50OmZ1bmN0aW9uKGcpe3JldHVybiAkRShnKS5wcmV2ZW50KCk7fSxr aWxsOmZ1bmN0aW9uKGcpe3JldHVybiAkRShnKS5raWxsKCk7fSxnZXRLZXlDb2Rl OmZ1bmN0aW9uKGV2ZW50KXtldmVudD0kRShldmVudCk7aWYoIWV2ZW50KXJldHVy biBmYWxzZTtzd2l0Y2goZXZlbnQua2V5Q29kZSl7Y2FzZSA2MzIzMjpyZXR1cm4g Mzg7Y2FzZSA2MzIzMzpyZXR1cm4gNDA7Y2FzZSA2MzIzNDpyZXR1cm4gMzc7Y2Fz ZSA2MzIzNTpyZXR1cm4gMzk7Y2FzZSA2MzI3MjpjYXNlIDYzMjczOmNhc2UgNjMy NzU6cmV0dXJuIG51bGw7Y2FzZSA2MzI3NjpyZXR1cm4gMzM7Y2FzZSA2MzI3Nzpy ZXR1cm4gMzQ7fWlmKGV2ZW50LnNoaWZ0S2V5KXN3aXRjaChldmVudC5rZXlDb2Rl KXtjYXNlIDMzOmNhc2UgMzQ6Y2FzZSAzNzpjYXNlIDM4OmNhc2UgMzk6Y2FzZSA0 MDpyZXR1cm4gbnVsbDt9cmV0dXJuIGV2ZW50LmtleUNvZGU7fSxnZXRQcmlvcml0 aWVzOmZ1bmN0aW9uKCl7aWYoIWUpe3ZhciBnPXZhbHVlcyhFdmVudC5Qcmlvcml0 eSk7Zy5zb3J0KGZ1bmN0aW9uKGgsaSl7cmV0dXJuIGgtaTt9KTtlPWc7fXJldHVy biBlO30sX19maXJlOmZ1bmN0aW9uKGcsaSxldmVudCl7dmFyIGg9RXZlbnQuX19n ZXRIYW5kbGVyKGcsaSk7aWYoaClyZXR1cm4gaCgkRShldmVudCkpO30sX19nZXRI YW5kbGVyOmZ1bmN0aW9uKGcsaCl7cmV0dXJuIERhdGFTdG9yZS5nZXQoZyxFdmVu dC5EQVRBU1RPUkVfS0VZK2gpO319KTt2YXIgZT1udWxsLGI9RXZlbnQuREFUQVNU T1JFX0tFWTt2YXIgYz1mdW5jdGlvbihnKXtyZXR1cm4gZnVuY3Rpb24oaCl7aWYo IURPTS5jb250YWlucyh0aGlzLGguZ2V0UmVsYXRlZFRhcmdldCgpKSlyZXR1cm4g Zy5jYWxsKHRoaXMsaCk7fTt9O3ZhciBmPXttb3VzZWVudGVyOntiYXNlOidtb3Vz ZW92ZXInLHdyYXA6Y30sbW91c2VsZWF2ZTp7YmFzZTonbW91c2VvdXQnLHdyYXA6 Y319O3ZhciBhPWZ1bmN0aW9uKGcsbCl7dmFyIGg9J29uJytsO3ZhciBrPWQuYmlu ZChnKTt2YXIgaj1EYXRhU3RvcmUuZ2V0KGcsYik7aWYobCBpbiBqKXJldHVybjtq W2xdPXt9O2lmKGcuYWRkRXZlbnRMaXN0ZW5lcil7Zy5hZGRFdmVudExpc3RlbmVy KGwsayxmYWxzZSk7fWVsc2UgaWYoZy5hdHRhY2hFdmVudClnLmF0dGFjaEV2ZW50 KGgsayk7RGF0YVN0b3JlLnNldChnLGIrbCxrKTtpZihnW2hdKXt2YXIgaT1nW2hd O2dbaF09bnVsbDtFdmVudC5saXN0ZW4oZyxsLGksRXZlbnQuUHJpb3JpdHkuVFJB RElUSU9OQUwpO31pZihnLm5vZGVOYW1lPT09J0ZPUk0nJiZsPT09J3N1Ym1pdCcp RXZlbnQubGlzdGVuKGcsbCxFdmVudC5fX2J1YmJsZVN1Ym1pdC5jdXJyeShnKSxF dmVudC5Qcmlvcml0eS5fQlVCQkxFKTt9O3ZhciBkPWZ1bmN0aW9uKGV2ZW50KXtl dmVudD0kRShldmVudCk7dmFyIG49ZXZlbnQudHlwZTtpZighRGF0YVN0b3JlLmdl dCh0aGlzLGIpKXRocm93IG5ldyBFcnJvcigiQmFkIGxpc3RlbkhhbmRsZXIgY29u dGV4dC4iKTt2YXIgbz1EYXRhU3RvcmUuZ2V0KHRoaXMsYilbbl07aWYoIW8pdGhy b3cgbmV3IEVycm9yKCJObyByZWdpc3RlcmVkIGhhbmRsZXJzIGZvciBgIituKyIn LiIpO2lmKG49PSdjbGljaycpe3ZhciBpPVBhcmVudC5ieVRhZyhldmVudC5nZXRU YXJnZXQoKSwnYScpO3VzZXJfYWN0aW9uKGksbixldmVudCk7fXZhciBrPUV2ZW50 LmdldFByaW9yaXRpZXMoKTtmb3IodmFyIGo9MDtqPGsubGVuZ3RoO2orKyl7dmFy IGw9a1tqXTtpZihsIGluIG8pe3ZhciBnPW9bbF07Zm9yKHZhciBoPTA7aDxnLmxl bmd0aDtoKyspe2lmKCFnW2hdKWNvbnRpbnVlO3ZhciBtPWdbaF0uZmlyZSh0aGlz LGV2ZW50KTtpZihtPT09ZmFsc2Upe3JldHVybiBldmVudC5raWxsKCk7fWVsc2Ug aWYoZXZlbnQuY2FuY2VsQnViYmxlKXJldHVybiBldmVudC5zdG9wKCk7fX19cmV0 dXJuIGV2ZW50LnJldHVyblZhbHVlO307fSkoKTtFdmVudC5Qcmlvcml0eT17VVJH RU5UOi0yMCxUUkFESVRJT05BTDotMTAsTk9STUFMOjAsX0JVQkJMRToxMDAwfTtm dW5jdGlvbiBFdmVudEhhbmRsZXJSZWYoYixhLGMpe3RoaXMuX2hhbmRsZXI9Yjt0 aGlzLl9jb250YWluZXI9YTt0aGlzLl9pbmRleD1jO31FdmVudEhhbmRsZXJSZWYu cHJvdG90eXBlPXtyZW1vdmU6ZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5faGFuZGxl cjtkZWxldGUgdGhpcy5fY29udGFpbmVyW3RoaXMuX2luZGV4XTt9LGZpcmU6ZnVu Y3Rpb24oYSxldmVudCl7cmV0dXJuIHRoaXMuX2hhbmRsZXIuY2FsbChhLGV2ZW50 KTt9fTsKV2lkZ2V0QXJiaXRlcj17X2ZpbmRTaWJsaW5nczpmdW5jdGlvbigpe2lm KFdpZGdldEFyYml0ZXIuX3NpYmxpbmdzKXJldHVybjtXaWRnZXRBcmJpdGVyLl9z aWJsaW5ncz1bXTtmb3IodmFyIGI9cGFyZW50LmZyYW1lcy5sZW5ndGgtMTtiPj0w O2ItLSl0cnl7aWYocGFyZW50LmZyYW1lc1tiXSYmcGFyZW50LmZyYW1lc1tiXS5B cmJpdGVyJiZwYXJlbnQuZnJhbWVzW2JdLkFyYml0ZXIuaW5mb3JtKVdpZGdldEFy Yml0ZXIuX3NpYmxpbmdzLnB1c2gocGFyZW50LmZyYW1lc1tiXS5BcmJpdGVyKTt9 Y2F0Y2goYSl7fX0saW5mb3JtOmZ1bmN0aW9uKCl7V2lkZ2V0QXJiaXRlci5fZmlu ZFNpYmxpbmdzKCk7dmFyIGE9JEEoYXJndW1lbnRzKTtXaWRnZXRBcmJpdGVyLl9z aWJsaW5ncy5lYWNoKGZ1bmN0aW9uKGIpe2IuaW5mb3JtLmFwcGx5KGIsYSk7fSk7 fX07CmZ1bmN0aW9uIGludGxfbG9jYWxlX2lzX3J0bCgpe3JldHVybiAoJ3J0bCc9 PUNTUy5nZXRTdHlsZShkb2N1bWVudC5ib2R5LCdkaXJlY3Rpb24nKSk7fQp2YXIg QnV0dG9uPShmdW5jdGlvbigpe3ZhciBhPSd1aUJ1dHRvbkRpc2FibGVkJzt2YXIg Yz0nYnV0dG9uOmJsb2NrZXInO3ZhciBiPSdocmVmJztmdW5jdGlvbiBkKGksaCl7 dmFyIGc9RGF0YVN0b3JlLmdldChpLGMpO2lmKGgpe2lmKGcpe2cucmVtb3ZlKCk7 RGF0YVN0b3JlLnJlbW92ZShpLGMpO319ZWxzZSBpZighZylEYXRhU3RvcmUuc2V0 KGksYyxFdmVudC5saXN0ZW4oaSwnY2xpY2snLGJhZ29mKGZhbHNlKSxFdmVudC5Q cmlvcml0eS5VUkdFTlQpKTt9ZnVuY3Rpb24gZShnKXt2YXIgaD1QYXJlbnQuYnlD bGFzcyhnLCd1aUJ1dHRvbicpO2lmKCFoKXRocm93IG5ldyBFcnJvcignaW52YWxp ZCB1c2UgY2FzZScpO3JldHVybiBoO31mdW5jdGlvbiBmKGcpe3JldHVybiBET00u aXNOb2RlKGcsJ2EnKTt9cmV0dXJuIHtnZXRJbnB1dEVsZW1lbnQ6ZnVuY3Rpb24o Zyl7Zz1lKGcpO2lmKGYoZykpdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHVzZSBj YXNlJyk7cmV0dXJuIERPTS5maW5kKGcsJ2lucHV0Jyk7fSxpc0VuYWJsZWQ6ZnVu Y3Rpb24oZyl7cmV0dXJuICFDU1MuaGFzQ2xhc3MoZShnKSxhKTt9LHNldEVuYWJs ZWQ6ZnVuY3Rpb24oaixnKXtqPWUoaik7Q1NTLmNvbmRpdGlvbkNsYXNzKGosYSwh Zyk7aWYoZihqKSl7dmFyIGg9ai5ocmVmO3ZhciBrPURhdGFTdG9yZS5nZXQoaixi LCcjJyk7aWYoZyl7aWYoIWgpai5ocmVmPWs7fWVsc2V7aWYoaCYmaCE9PWspRGF0 YVN0b3JlLnNldChqLGIsaCk7ai5yZW1vdmVBdHRyaWJ1dGUoJ2hyZWYnKTt9ZChq LGcpO31lbHNle3ZhciBpPUJ1dHRvbi5nZXRJbnB1dEVsZW1lbnQoaik7aS5kaXNh YmxlZD0hZztkKGksZyk7fX0sc2V0TGFiZWw6ZnVuY3Rpb24oaCxnKXtoPWUoaCk7 aWYoZihoKSl7dmFyIGk9RE9NLmZpbmQoaCwnc3Bhbi51aUJ1dHRvblRleHQnKTtE T00uc2V0Q29udGVudChpLGcpO31lbHNlIEJ1dHRvbi5nZXRJbnB1dEVsZW1lbnQo aCkudmFsdWU9ZztDU1MuY29uZGl0aW9uQ2xhc3MoaCwndWlCdXR0b25Ob1RleHQn LCFnKTt9LHNldEljb246ZnVuY3Rpb24oaCxnKXtpZighRE9NLmlzTm9kZShnKSly ZXR1cm47Q1NTLmFkZENsYXNzKGcsJ2N1c3RvbWltZycpO2g9ZShoKTt2YXIgaT1E T00uc2NyeShoLCcuaW1nJylbMF07aWYoaSl7RE9NLnJlcGxhY2UoaSxnKTt9ZWxz ZSBET00ucHJlcGVuZENvbnRlbnQoaCxnKTt9fTt9KSgpOwpmdW5jdGlvbiBWZWN0 b3IyKGIsYyxhKXtjb3B5X3Byb3BlcnRpZXModGhpcyx7eDpwYXJzZUZsb2F0KGIp LHk6cGFyc2VGbG9hdChjKSxkb21haW46YXx8J3B1cmUnfSk7fWNvcHlfcHJvcGVy dGllcyhWZWN0b3IyLnByb3RvdHlwZSx7dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1 cm4gJygnK3RoaXMueCsnLCAnK3RoaXMueSsnKSc7fSxhZGQ6ZnVuY3Rpb24oYyxk KXtpZihhcmd1bWVudHMubGVuZ3RoPT0xKXtpZihjLmRvbWFpbiE9J3B1cmUnKWM9 Yy5jb252ZXJ0VG8odGhpcy5kb21haW4pO3JldHVybiB0aGlzLmFkZChjLngsYy55 KTt9dmFyIGE9cGFyc2VGbG9hdChjKTt2YXIgYj1wYXJzZUZsb2F0KGQpO3JldHVy biBuZXcgVmVjdG9yMih0aGlzLngrYSx0aGlzLnkrYix0aGlzLmRvbWFpbik7fSxt dWw6ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YoYik9PSJ1bmRlZmluZWQiKWI9YTty ZXR1cm4gbmV3IFZlY3RvcjIodGhpcy54KmEsdGhpcy55KmIsdGhpcy5kb21haW4p O30sc3ViOmZ1bmN0aW9uKGEsYil7aWYoYXJndW1lbnRzLmxlbmd0aD09MSl7cmV0 dXJuIHRoaXMuYWRkKGEubXVsKC0xKSk7fWVsc2UgcmV0dXJuIHRoaXMuYWRkKC1h LC1iKTt9LGRpc3RhbmNlVG86ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuc3ViKGEp Lm1hZ25pdHVkZSgpO30sbWFnbml0dWRlOmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgu c3FydCgodGhpcy54KnRoaXMueCkrKHRoaXMueSp0aGlzLnkpKTt9LGNvbnZlcnRU bzpmdW5jdGlvbihhKXtpZihhIT0ncHVyZScmJmEhPSd2aWV3cG9ydCcmJmEhPSdk b2N1bWVudCcpcmV0dXJuIG5ldyBWZWN0b3IyKDAsMCk7aWYoYT09dGhpcy5kb21h aW4pcmV0dXJuIG5ldyBWZWN0b3IyKHRoaXMueCx0aGlzLnksdGhpcy5kb21haW4p O2lmKGE9PSdwdXJlJylyZXR1cm4gbmV3IFZlY3RvcjIodGhpcy54LHRoaXMueSk7 aWYodGhpcy5kb21haW49PSdwdXJlJylyZXR1cm4gbmV3IFZlY3RvcjIoMCwwKTt2 YXIgYj1WZWN0b3IyLmdldFNjcm9sbFBvc2l0aW9uKCdkb2N1bWVudCcpO3ZhciBj PXRoaXMueCxkPXRoaXMueTtpZih0aGlzLmRvbWFpbj09J2RvY3VtZW50Jyl7Yy09 Yi54O2QtPWIueTt9ZWxzZXtjKz1iLng7ZCs9Yi55O31yZXR1cm4gbmV3IFZlY3Rv cjIoYyxkLGEpO30sc2V0RWxlbWVudFBvc2l0aW9uOmZ1bmN0aW9uKGEpe3ZhciBi PXRoaXMuY29udmVydFRvKCdkb2N1bWVudCcpO2Euc3R5bGUubGVmdD1wYXJzZUlu dChiLngpKydweCc7YS5zdHlsZS50b3A9cGFyc2VJbnQoYi55KSsncHgnO3JldHVy biB0aGlzO30sc2V0RWxlbWVudERpbWVuc2lvbnM6ZnVuY3Rpb24oYSl7cmV0dXJu IHRoaXMuc2V0RWxlbWVudFdpZHRoKGEpLnNldEVsZW1lbnRIZWlnaHQoYSk7fSxz ZXRFbGVtZW50V2lkdGg6ZnVuY3Rpb24oYSl7YS5zdHlsZS53aWR0aD1wYXJzZUlu dCh0aGlzLngsMTApKydweCc7cmV0dXJuIHRoaXM7fSxzZXRFbGVtZW50SGVpZ2h0 OmZ1bmN0aW9uKGEpe2Euc3R5bGUuaGVpZ2h0PXBhcnNlSW50KHRoaXMueSwxMCkr J3B4JztyZXR1cm4gdGhpczt9LHNjcm9sbEVsZW1lbnRCeTpmdW5jdGlvbihhKXtp ZihhPT1kb2N1bWVudC5ib2R5KXt3aW5kb3cuc2Nyb2xsQnkodGhpcy54LHRoaXMu eSk7fWVsc2V7YS5zY3JvbGxMZWZ0Kz10aGlzLng7YS5zY3JvbGxUb3ArPXRoaXMu eTt9cmV0dXJuIHRoaXM7fX0pO2NvcHlfcHJvcGVydGllcyhWZWN0b3IyLHtnZXRF dmVudFBvc2l0aW9uOmZ1bmN0aW9uKGIsYSl7YT1hfHwnZG9jdW1lbnQnO2I9JEUo Yik7dmFyIGQ9Yi5wYWdlWHx8KGIuY2xpZW50WCsoZG9jdW1lbnQuZG9jdW1lbnRF bGVtZW50LnNjcm9sbExlZnR8fGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCkpO3Zh ciBlPWIucGFnZVl8fChiLmNsaWVudFkrKGRvY3VtZW50LmRvY3VtZW50RWxlbWVu dC5zY3JvbGxUb3B8fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKSk7dmFyIGM9bmV3 IFZlY3RvcjIoZCxlLCdkb2N1bWVudCcpO3JldHVybiBjLmNvbnZlcnRUbyhhKTt9 LGdldFNjcm9sbFBvc2l0aW9uOmZ1bmN0aW9uKGEpe2E9YXx8J2RvY3VtZW50Jzt2 YXIgYj1kb2N1bWVudC5ib2R5LnNjcm9sbExlZnR8fGRvY3VtZW50LmRvY3VtZW50 RWxlbWVudC5zY3JvbGxMZWZ0O3ZhciBjPWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9w fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wO3JldHVybiBuZXcg VmVjdG9yMihiLGMsJ2RvY3VtZW50JykuY29udmVydFRvKGEpO30sZ2V0RWxlbWVu dFBvc2l0aW9uOmZ1bmN0aW9uKGMsYil7Yj1ifHwnZG9jdW1lbnQnO2lmKCFjKXJl dHVybjtpZighKCdnZXRCb3VuZGluZ0NsaWVudFJlY3QnIGluIGMpKXJldHVybiBu ZXcgVmVjdG9yMigwLDAsJ2RvY3VtZW50Jyk7dmFyIGU9Yy5nZXRCb3VuZGluZ0Ns aWVudFJlY3QoKSxhPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxkPU1hdGgucm91 bmQoZS5sZWZ0KS1hLmNsaWVudExlZnQsZj1NYXRoLnJvdW5kKGUudG9wKS1hLmNs aWVudFRvcDtyZXR1cm4gbmV3IFZlY3RvcjIoZCxmLCd2aWV3cG9ydCcpLmNvbnZl cnRUbyhiKTt9LGdldEVsZW1lbnREaW1lbnNpb25zOmZ1bmN0aW9uKGEpe3JldHVy biBuZXcgVmVjdG9yMihhLm9mZnNldFdpZHRofHwwLGEub2Zmc2V0SGVpZ2h0fHww KTt9LGdldFZpZXdwb3J0RGltZW5zaW9uczpmdW5jdGlvbigpe3ZhciBhPSh3aW5k b3cmJndpbmRvdy5pbm5lcldpZHRoKXx8KGRvY3VtZW50JiZkb2N1bWVudC5kb2N1 bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0 aCl8fChkb2N1bWVudCYmZG9jdW1lbnQuYm9keSYmZG9jdW1lbnQuYm9keS5jbGll bnRXaWR0aCl8fDA7dmFyIGI9KHdpbmRvdyYmd2luZG93LmlubmVySGVpZ2h0KXx8 KGRvY3VtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRv Y3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpfHwoZG9jdW1lbnQmJmRvY3VtZW50 LmJvZHkmJmRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0KXx8MDtyZXR1cm4gbmV3 IFZlY3RvcjIoYSxiLCd2aWV3cG9ydCcpO30sZ2V0RG9jdW1lbnREaW1lbnNpb25z OmZ1bmN0aW9uKCl7dmFyIGE9KGRvY3VtZW50JiZkb2N1bWVudC5kb2N1bWVudEVs ZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxXaWR0aCl8fChk b2N1bWVudCYmZG9jdW1lbnQuYm9keSYmZG9jdW1lbnQuYm9keS5zY3JvbGxXaWR0 aCl8fDA7dmFyIGI9KGRvY3VtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQm JmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpfHwoZG9jdW1l bnQmJmRvY3VtZW50LmJvZHkmJmRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0KXx8 MDtyZXR1cm4gbmV3IFZlY3RvcjIoYSxiLCdkb2N1bWVudCcpO30sZGVzZXJpYWxp emU6ZnVuY3Rpb24oYil7dmFyIGE9Yi5zcGxpdCgnLCcpO3JldHVybiBuZXcgVmVj dG9yMihhWzBdLGFbMV0pO319KTt2YXIgb3BlcmFJZ25vcmVTY3JvbGw9e3RhYmxl OnRydWUsJ2lubGluZS10YWJsZSc6dHJ1ZSxpbmxpbmU6dHJ1ZX07ZnVuY3Rpb24g ZWxlbWVudFgoYSl7cmV0dXJuIFZlY3RvcjIuZ2V0RWxlbWVudFBvc2l0aW9uKGEs J2RvY3VtZW50JykueDt9ZnVuY3Rpb24gZWxlbWVudFkoYSl7cmV0dXJuIFZlY3Rv cjIuZ2V0RWxlbWVudFBvc2l0aW9uKGEsJ2RvY3VtZW50JykueTt9CnZhciBQb3B1 cFJlc2l6ZXI9e19vcHRzOnthbGxvd1Nocmluazp0cnVlLHRpbWVvdXQ6MTAwfSxp bml0OmZ1bmN0aW9uKGEpe2NvcHlfcHJvcGVydGllcyhQb3B1cFJlc2l6ZXIuX29w dHMsYSk7UG9wdXBSZXNpemVyLl9yZXNpemVDaGVjay5yZWN1cihQb3B1cFJlc2l6 ZXIuX29wdHMudGltZW91dCk7fSxfcmVzaXplQ2hlY2s6ZnVuY3Rpb24oKXt2YXIg ZT1WZWN0b3IyLmdldFZpZXdwb3J0RGltZW5zaW9ucygpLGE9UG9wdXBSZXNpemVy Ll9nZXREb2N1bWVudFNpemUoKSxjPWEueS1lLnksZD1hLngtZS54O2lmKGQ8MClk PTA7aWYoIVBvcHVwUmVzaXplci5fb3B0cy5hbGxvd1NocmluayYmYzwwKWM9MDtp ZihjfHxkKXRyeXt3aW5kb3cucmVzaXplQnkoZCxjKTtpZihkKXdpbmRvdy5tb3Zl QnkoZC8tMiwwKTt9Y2F0Y2goYil7fX0sX2dldERvY3VtZW50U2l6ZTpmdW5jdGlv bigpe3ZhciBhPXt4OnVhLmZpcmVmb3goKT9kb2N1bWVudC5kb2N1bWVudEVsZW1l bnQuc2Nyb2xsV2lkdGg6ZG9jdW1lbnQuYm9keS5zY3JvbGxXaWR0aCx5OmRvY3Vt ZW50LmJvZHkuc2Nyb2xsSGVpZ2h0fTtpZihhLng8PTB8fGEueD5kb2N1bWVudC5k b2N1bWVudEVsZW1lbnQuc2Nyb2xsV2lkdGgpYS54PWRvY3VtZW50LmRvY3VtZW50 RWxlbWVudC5zY3JvbGxXaWR0aDtpZihhLnk8PTB8fGEueT5kb2N1bWVudC5kb2N1 bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KWEueT1kb2N1bWVudC5kb2N1bWVudEVs ZW1lbnQuc2Nyb2xsSGVpZ2h0O2lmKHdpbmRvdy5EaWFsb2cmJkRpYWxvZy5tYXhf Ym90dG9tJiZEaWFsb2cubWF4X2JvdHRvbT5hLnkpYS55PURpYWxvZy5tYXhfYm90 dG9tO3JldHVybiBhO30sb3BlbjpmdW5jdGlvbihpLGIsail7dmFyIGY9dHlwZW9m IHdpbmRvdy5zY3JlZW5YIT0ndW5kZWZpbmVkJz93aW5kb3cuc2NyZWVuWDp3aW5k b3cuc2NyZWVuTGVmdCxnPXR5cGVvZiB3aW5kb3cuc2NyZWVuWSE9J3VuZGVmaW5l ZCc/d2luZG93LnNjcmVlblk6d2luZG93LnNjcmVlblRvcCxlPXR5cGVvZiB3aW5k b3cub3V0ZXJXaWR0aCE9J3VuZGVmaW5lZCc/d2luZG93Lm91dGVyV2lkdGg6ZG9j dW1lbnQuYm9keS5jbGllbnRXaWR0aCxkPXR5cGVvZiB3aW5kb3cub3V0ZXJIZWln aHQhPSd1bmRlZmluZWQnP3dpbmRvdy5vdXRlckhlaWdodDooZG9jdW1lbnQuYm9k eS5jbGllbnRIZWlnaHQtMjIpLGM9cGFyc2VJbnQoZisoKGUtaikvMiksMTApLGg9 cGFyc2VJbnQoZysoKGQtYikvMi41KSwxMCksYT0oJ3dpZHRoPScraisnLGhlaWdo dD0nK2IrJyxsZWZ0PScrYysnLHRvcD0nK2gpO3JldHVybiB3aW5kb3cub3Blbihp LCdfYmxhbmsnLGEpO319Owp2YXIgUGxhdGZvcm1PcHRJblBvcHVwPWZ1bmN0aW9u KCl7fTtjb3B5X3Byb3BlcnRpZXMoUGxhdGZvcm1PcHRJblBvcHVwLHtESUFMT0df VVJMOicvY29ubmVjdC91aXNlcnZlci5waHAnLERJQUxPR19XSURUSDo0MjAsRElB TE9HX0hFSUdIVDo0NTAsQVBQX0lEOjEyNzc2MDA4NzIzNzYxMCxvcGVuOmZ1bmN0 aW9uKGQsYyxhKXtpZighZClkPSdnZW5lcmljJztpZighYyljPSdvcHQuaW4nO3Zh ciBiPW5ldyBVUkkoUGxhdGZvcm1PcHRJblBvcHVwLkRJQUxPR19VUkwpO2IuYWRk UXVlcnlEYXRhKHtzb2NpYWxfcGx1Z2luOmQsbWV0aG9kOmMsZGlzcGxheToncG9w dXAnLHNlY3VyZTpVUkkuZ2V0UmVxdWVzdFVSSSgpLmlzU2VjdXJlKCksYXBwX2lk OlBsYXRmb3JtT3B0SW5Qb3B1cC5BUFBfSUR9KTtpZihhKWIuYWRkUXVlcnlEYXRh KGEpO3JldHVybiBQb3B1cFJlc2l6ZXIub3BlbihiLnRvU3RyaW5nKCksUGxhdGZv cm1PcHRJblBvcHVwLkRJQUxPR19XSURUSCxQbGF0Zm9ybU9wdEluUG9wdXAuRElB TE9HX0hFSUdIVCk7fX0pOwp2YXIgRXh0ZXJuYWxOb2RlQ29ubmVjdFdpZGdldD1m dW5jdGlvbihpKXtjb3B5X3Byb3BlcnRpZXModGhpcyx7d2lkZ2V0SUQ6aS53aWRn ZXRJRCx3aWRnZXQ6JChpLndpZGdldElEKSx2aWV3ZXJJRDppLnZpZXdlcixub2Rl VHlwZTppLm5vZGVUeXBlLHZpZXdlcklzQWRtaW46aS52aWV3ZXJJc0FkbWluJiYh aS51c2VyT3B0ZWRPdXQsYWRtaW5Vcmw6aS5hZG1pblVybCxwb3B1cE9wdEluUGFy YW1zOntsb2NhbGU6aS5sb2NhbGV9LG5vZGVVcmk6bmV3IFVSSShpLm5vZGVVUkwp LGV4dGVybmFsVXJsOmkuZXh0ZXJuYWxVUkwscGFnZUlkOmkucGFnZUlkLGxheW91 dDppLmxheW91dCxlZGdlVHlwZTppLmVkZ2VUeXBlLGVycm9yOmkuZXJyb3IsZXJy b3JVUkk6bmV3IFVSSSgnL2hvbWUucGhwJyksYWxyZWFkeUNvbm5lY3RlZDppLmFs cmVhZHlDb25uZWN0ZWQsdXNpbmdDb25uZWN0TGlicmFyeTohIWkuY2hhbm5lbFVS TCxjb21tZW50V2lkZ2V0TWFya3VwOmkuY29tbWVudFdpZGdldE1hcmt1cCxjb21t ZW50V2lkZ2V0T3BlbjpmYWxzZSxjb21tZW50V2lkZ2V0VmlzaWJsZTpmYWxzZSx1 c2VyUHJvZmlsZTpudWxsLGNvbm5lY3RTdG9yeUZiaWQ6MCxpc0FtYmlndW91c1Rl eHQ6aS5pc0FtYmlndW91c1RleHQsc29jaWFsQmFyOmkuc29jaWFsYmFyLHVzZURp c2Nvbm5lY3RMaW5rOmkudXNlRGlzY29ubmVjdExpbmssc2hvd0Vycm9yOmkuc2hv d0Vycm9yLHNob3dDb25maXJtOmkuc2hvd0NvbmZpcm0sc2hvd0ZhY2VzOmkuc2hv d0ZhY2VzLGNvbm5lY3RUZXh0OmkuY29ubmVjdFRleHQscmVmOmkucmVmLHVzZXJP cHRlZE91dDppLnVzZXJPcHRlZE91dCx1c2luZ0lubGluZUNvbW1lbnRpbmc6aS51 c2luZ0lubGluZUNvbW1lbnRpbmcsc3VwcG9ydENvbW1lbnRpbmc6ISFpLmNoYW5u ZWxVUkx8fGkudXNpbmdJbmxpbmVDb21tZW50aW5nLGlubGluZUNvbW1lbnRMaXN0 ZW5lcnNJbml0aWFsaXplZDpmYWxzZSxmb3JjZUNvbW1lbnRIb29rczppLmZvcmNl Q29tbWVudEhvb2tzLG51eDppLm51eCxpZnJhbWVSZWZlcmVyOmkuaWZyYW1lUmVm ZXJlcixpc0Jsb2NrZWQ6aS5pc0Jsb2NrZWQsaXNQZXJzb25hbGl6ZWQ6aS5pc1Bl cnNvbmFsaXplZCxjb25maXJtZWRDb25uZWN0OmkuY29uZmlybWVkQ29ubmVjdCxo YXNTZW5kOmkuc2VuZCxjb2xvclNjaGVtZTppLmNvbG9yU2NoZW1lLGdyYXlPdXQ6 aS5ncmF5T3V0fSk7aWYodGhpcy51c2luZ0Nvbm5lY3RMaWJyYXJ5KVVudmVyaWZp ZWRYRC5pbml0KHthdXRvUmVzaXplOmkuYXV0b1Jlc2l6ZSxjaGFubmVsVXJsOmku Y2hhbm5lbFVSTCxyZXNpemVXaWR0aDppLmF1dG9SZXNpemUmJmkubGF5b3V0IT09 RXh0ZXJuYWxOb2RlQ29ubmVjdFdpZGdldC5TVEFOREFSRF9MQVlPVVR9KTt0aGlz LnVud3JhcHBlZE1hcmt1cD1bXTt0aGlzLmNvbm5lY3RCdXR0b25TbGlkZXI9RE9N LnNjcnkodGhpcy53aWRnZXQsJ2Rpdi5jb25uZWN0X2J1dHRvbl9zbGlkZXInKTt0 aGlzLmNvbm5lY3RCdXR0b25Db250YWluZXI9bnVsbDtpZih0aGlzLmNvbm5lY3RC dXR0b25TbGlkZXIubGVuZ3RoKXt0aGlzLmNvbm5lY3RCdXR0b25TbGlkZXI9dGhp cy5jb25uZWN0QnV0dG9uU2xpZGVyWzBdO3RoaXMuY29ubmVjdEJ1dHRvbkNvbnRh aW5lcj1ET00uZmluZCh0aGlzLmNvbm5lY3RCdXR0b25TbGlkZXIsJ2Rpdi5jb25u ZWN0X2J1dHRvbl9jb250YWluZXInKTt9ZWxzZSB0aGlzLmNvbm5lY3RCdXR0b25T bGlkZXI9bnVsbDt0aGlzLmNvbm5lY3RCdXR0b249RE9NLmZpbmQodGhpcy53aWRn ZXQsJ2EuY29ubmVjdF93aWRnZXRfbGlrZV9idXR0b24nKTtpZih0aGlzLmdyYXlP dXQpdGhpcy50b21ic3RvbmVDcm9zcz1ET00uZmluZCh0aGlzLndpZGdldCwnLnRv bWJzdG9uZV9jcm9zcycpO3RoaXMuY29ubmVjdGVkTWVzc2FnZT1ET00uc2NyeSh0 aGlzLndpZGdldCwnc3Bhbi5jb25uZWN0X3dpZGdldF9jb25uZWN0ZWRfdGV4dCcp O3RoaXMuY29ubmVjdGVkTWVzc2FnZT10aGlzLmNvbm5lY3RlZE1lc3NhZ2UubGVu Z3RoP3RoaXMuY29ubmVjdGVkTWVzc2FnZVswXTpudWxsO3RoaXMubm90Q29ubmVj dGVkTWVzc2FnZT1ET00uc2NyeSh0aGlzLndpZGdldCwnc3Bhbi5jb25uZWN0X3dp ZGdldF9ub3RfY29ubmVjdGVkX3RleHQnKTt0aGlzLm5vdENvbm5lY3RlZE1lc3Nh Z2U9dGhpcy5ub3RDb25uZWN0ZWRNZXNzYWdlLmxlbmd0aD90aGlzLm5vdENvbm5l Y3RlZE1lc3NhZ2VbMF06bnVsbDt0aGlzLmFkbWluU3BhbnM9RE9NLnNjcnkodGhp cy53aWRnZXQsJ3NwYW4uY29ubmVjdF93aWRnZXRfYWRtaW5fc3BhbicpO2lmKHRo aXMuYWRtaW5TcGFucy5sZW5ndGg+MCl7dGhpcy5hZG1pbkxpbmtzPVtdO2Zvcih2 YXIgYT0wO2E8dGhpcy5hZG1pblNwYW5zLmxlbmd0aDthKyspdGhpcy5hZG1pbkxp bmtzW2FdPURPTS5maW5kKHRoaXMuYWRtaW5TcGFuc1thXSwnYS5jb25uZWN0X3dp ZGdldF9hZG1pbl9vcHRpb24nKTt9aWYodGhpcy5sYXlvdXQ9PUV4dGVybmFsTm9k ZUNvbm5lY3RXaWRnZXQuU1RBTkRBUkRfTEFZT1VUKXt0aGlzLmNvbmZpcm1hdGlv bkNlbGw9RE9NLmZpbmQodGhpcy53aWRnZXQsJ2Rpdi5jb25uZWN0X2NvbmZpcm1h dGlvbl9jZWxsJyk7dGhpcy51c2VyQWN0aW9uVGV4dFNwYW49RE9NLmZpbmQodGhp cy5jb25maXJtYXRpb25DZWxsLCdzcGFuLmNvbm5lY3Rfd2lkZ2V0X3VzZXJfYWN0 aW9uJyk7dGhpcy5zdW1tYXJ5VGV4dFNwYW49RE9NLmZpbmQodGhpcy5jb25maXJt YXRpb25DZWxsLCdzcGFuLmNvbm5lY3Rfd2lkZ2V0X3N1bW1hcnknKTt0aGlzLnN1 bW1hcnlUZXh0PURPTS5maW5kKHRoaXMuY29uZmlybWF0aW9uQ2VsbCwnZGl2LmNv bm5lY3Rfd2lkZ2V0X3RleHRfc3VtbWFyeScpO3ZhciBqPURPTS5zY3J5KHRoaXMu d2lkZ2V0LCdkaXYuY29ubmVjdF93aWRnZXRfc2FtcGxlX2Nvbm5lY3Rpb25zJyk7 dGhpcy5zYW1wbGVDb25uZWN0aW9ucz1qLmxlbmd0aD4wP2pbMF06bnVsbDtpZihp LnNob3dGYWNlcyYmaS52aWV3ZXI+MCl7dmFyIGU9RE9NLnNjcnkodGhpcy53aWRn ZXQsJ2Rpdi5jb25uZWN0X3dpZGdldF9sb2dnZWRfaW5fdXNlcicpO3RoaXMubG9n Z2VkSW5Vc2VyUGhvdG9EaXY9ZS5sZW5ndGg+MD9lWzBdOm51bGw7fX1pZih0aGlz LmxheW91dD09PUV4dGVybmFsTm9kZUNvbm5lY3RXaWRnZXQuU0lNUExFX0xBWU9V VCl7dGhpcy5vcmlnaW5hbEJ1dHRvbldpZHRoPXRoaXMuY29tcHV0ZUJ1dHRvbkRp bWVuc2lvbnMoKS53aWR0aDt0aGlzLnN1bW1hcnlJbmNsdWRpbmc9RE9NLmZpbmQo dGhpcy53aWRnZXQsJ3RkLmNvbm5lY3Rfd2lkZ2V0X3NpbXBsZV9pbmNsdWRpbmcn KTt0aGlzLnN1cHBvcnRDb21tZW50aW5nPWZhbHNlO3RoaXMudXNpbmdJbmxpbmVD b21tZW50aW5nPWZhbHNlO310aGlzLnNldFF1ZXJ5RGF0YSgpO2lmKHRoaXMucGFn ZUlkKWNvcHlfcHJvcGVydGllcyh0aGlzLnBvcHVwT3B0SW5QYXJhbXMse2Nvbm5l Y3RfaWQ6dGhpcy5wYWdlSWR9KTt0aGlzLmVycm9yU3BhbnM9RE9NLnNjcnkodGhp cy53aWRnZXQsJ3NwYW4uY29ubmVjdF93aWRnZXRfZXJyb3Jfc3BhbicpO2lmKHRo aXMuZXJyb3JTcGFucy5sZW5ndGg+MCl7dGhpcy5lcnJvckxpbmtzPVtdO2Zvcih2 YXIgYj0wO2I8dGhpcy5lcnJvclNwYW5zLmxlbmd0aDtiKyspdGhpcy5lcnJvckxp bmtzW2JdPURPTS5maW5kKHRoaXMuZXJyb3JTcGFuc1tiXSwnYS5jb25uZWN0X3dp ZGdldF9lcnJvcl90ZXh0Jyk7fXRoaXMuY29uZmlybVNwYW5zPURPTS5zY3J5KHRo aXMud2lkZ2V0LCdzcGFuLmNvbm5lY3Rfd2lkZ2V0X2NvbmZpcm1fc3BhbicpO2lm KHRoaXMuY29uZmlybVNwYW5zLmxlbmd0aD4wKXt0aGlzLmNvbmZpcm1MaW5rcz1b XTtmb3IodmFyIGQ9MDtkPHRoaXMuY29uZmlybVNwYW5zLmxlbmd0aDtkKyspdGhp cy5jb25maXJtTGlua3NbZF09RE9NLmZpbmQodGhpcy5jb25maXJtU3BhbnNbZF0s J2EuY29ubmVjdF93aWRnZXRfY29uZmlybV9saW5rJyk7fXRoaXMudW5saWtlU3Bh bnM9RE9NLnNjcnkodGhpcy53aWRnZXQsJ3NwYW4udW5saWtlX3NwYW4nKTt0aGlz LnVubGlrZUxpbmtzPVtdO2Zvcih2YXIgYz0wO2M8dGhpcy51bmxpa2VTcGFucy5s ZW5ndGg7YysrKXt0aGlzLnVubGlrZUxpbmtzW2NdPURPTS5maW5kKHRoaXMudW5s aWtlU3BhbnNbY10sJ2EuY29ubmVjdF93aWRnZXRfdW5saWtlX2xpbmsnKTtFdmVu dC5saXN0ZW4odGhpcy51bmxpa2VMaW5rc1tjXSwnY2xpY2snLHRoaXMuY29ubmVj dFRvTm9kZU9uQ2xpY2suYmluZCh0aGlzKSk7fXZhciBoPURPTS5zY3J5KHRoaXMu d2lkZ2V0LCdkaXYuY29ubmVjdF93aWRnZXRfbnVtYmVyX2Nsb3VkJyk7aWYoaC5s ZW5ndGg9PTEpe3RoaXMubnVtYmVyQ2xvdWQ9aFswXTt0aGlzLm51bWJlckNsb3Vk TnViPURPTS5maW5kKHRoaXMud2lkZ2V0LCdkaXYuY29ubmVjdF93aWRnZXRfbnVt YmVyX2Nsb3VkX251YicpO3RoaXMubnVtYmVyQ2xvdWRFeHRlbnNpb249RE9NLmZp bmQodGhpcy5udW1iZXJDbG91ZCwnZGl2LmNvbm5lY3Rfd2lkZ2V0X251bWJlcl9j bG91ZF9leHRlbnNpb24nKTt0aGlzLnNpemVOdW1iZXJDbG91ZCgpO3RoaXMubnVt YmVyQ2xvdWRVbmxpa2VTcGFuPURPTS5maW5kKHRoaXMubnVtYmVyQ2xvdWRFeHRl bnNpb24sJ3NwYW4udW5saWtlX3NwYW4nKTt0aGlzLm51bWJlckNsb3VkUmVtaW5k ZXJTcGFuPURPTS5maW5kKHRoaXMubnVtYmVyQ2xvdWRFeHRlbnNpb24sJ3NwYW4u bGlrZV9yZW1pbmRlcicpO3RoaXMuaW5BbmltYXRpb249ZmFsc2U7dGhpcy5yZW1p bmRlcklzVmlzaWJsZT1DU1MuaGFzQ2xhc3ModGhpcy5udW1iZXJDbG91ZFVubGlr ZVNwYW4sJ2hpZGRlbl9lbGVtJyk7RXZlbnQubGlzdGVuKHRoaXMubnVtYmVyQ2xv dWQsJ21vdXNlbGVhdmUnLHRoaXMucmVzdG9yZVJlbWluZGVyU3Bhbi5iaW5kKHRo aXMpKTtFdmVudC5saXN0ZW4odGhpcy5udW1iZXJDbG91ZEV4dGVuc2lvbiwnbW91 c2VsZWF2ZScsdGhpcy5yZXN0b3JlUmVtaW5kZXJTcGFuLmJpbmQodGhpcykpO0V2 ZW50Lmxpc3Rlbih0aGlzLm51bWJlckNsb3VkRXh0ZW5zaW9uLCdtb3VzZWVudGVy Jyx0aGlzLmV4cG9zZVVubGlrZVNwYW4uYmluZCh0aGlzKSk7RXZlbnQubGlzdGVu KHRoaXMubnVtYmVyQ2xvdWQsJ21vdXNlZW50ZXInLHRoaXMuZXhwb3NlVW5saWtl U3Bhbi5iaW5kKHRoaXMpKTtFdmVudC5saXN0ZW4odGhpcy5udW1iZXJDbG91ZEV4 dGVuc2lvbiwnbW91c2VsZWF2ZScsZnVuY3Rpb24oZXZlbnQpe3RoaXMucmVxdWly ZXNNb3VzZUxlYXZlRXZlbnQ9ZmFsc2U7fS5iaW5kKHRoaXMpKTt9aWYodGhpcy51 c2luZ0lubGluZUNvbW1lbnRpbmcmJiF0aGlzLnNob3dGYWNlcyl7dGhpcy5zaGFy ZUNvbW1lbnRTcGFucz1ET00uc2NyeSh0aGlzLndpZGdldCwnc3Bhbi5jb25uZWN0 X3dpZGdldF9zaGFyZV9jb21tZW50X3NwYW4nKTtmb3IodmFyIGY9MDtmPHRoaXMu c2hhcmVDb21tZW50U3BhbnMubGVuZ3RoO2YrKyl7dmFyIGs9RE9NLmZpbmQodGhp cy5zaGFyZUNvbW1lbnRTcGFuc1tmXSwnYS5jb25uZWN0X3dpZGdldF9zaGFyZV9j b21tZW50X29wdGlvbicpO0V2ZW50Lmxpc3RlbihrLCdjbGljaycsZnVuY3Rpb24o ZXZlbnQpe2Zvcih2YXIgbD0wO2w8dGhpcy5zaGFyZUNvbW1lbnRTcGFucy5sZW5n dGg7bCsrKUNTUy5hZGRDbGFzcyh0aGlzLnNoYXJlQ29tbWVudFNwYW5zW2xdLCdo aWRkZW5fZWxlbScpO3RoaXMucHJlc2VudENvbW1lbnRpbmdPcHRpb24oKTt9LmJp bmQodGhpcykpO319aWYodGhpcy5sYXlvdXQ9PT1FeHRlcm5hbE5vZGVDb25uZWN0 V2lkZ2V0LkJVVFRPTl9DT1VOVF9MQVlPVVQpe1hELmZvcmNlZF9taW5fd2lkdGg9 dGhpcy5nZXRCdXR0b25Db3VudFdpZGdldFdpZHRoKCk7dGhpcy5udW1iZXJFeGNs dWRpbmc9RE9NLmZpbmQodGhpcy53aWRnZXQsJ3RkLmNvbm5lY3Rfd2lkZ2V0X2J1 dHRvbl9jb3VudF9leGNsdWRpbmcnKTt0aGlzLnN1bW1hcnlJbmNsdWRpbmc9RE9N LmZpbmQodGhpcy53aWRnZXQsJ3RkLmNvbm5lY3Rfd2lkZ2V0X2J1dHRvbl9jb3Vu dF9pbmNsdWRpbmcnKTt0aGlzLnRodW1ic1VwSWNvbj1ET00uZmluZCh0aGlzLnN1 bW1hcnlJbmNsdWRpbmcsJ2Rpdi50aHVtYnNfdXAnKTt0aGlzLnVuZG9SZWdpb249 RE9NLmZpbmQodGhpcy5zdW1tYXJ5SW5jbHVkaW5nLCdkaXYudW5kbycpO3RoaXMu b3JpZ2luYWxCdXR0b25XaWR0aD10aGlzLmNvbXB1dGVCdXR0b25EaW1lbnNpb25z KCkud2lkdGg7RXZlbnQubGlzdGVuKHRoaXMudGh1bWJzVXBJY29uLCdtb3VzZWVu dGVyJyxmdW5jdGlvbihldmVudCl7dGhpcy51bndyYXBNYXJrdXAoJ3VuZG8td3Jh cCcpO3RoaXMudW5kb0J1dHRvbj1ET00uZmluZCh0aGlzLnVuZG9SZWdpb24sJ2xh YmVsLnVuZG9fYnV0dG9uIGlucHV0Jyk7RXZlbnQubGlzdGVuKHRoaXMudW5kb0J1 dHRvbiwnY2xpY2snLHRoaXMuY29ubmVjdFRvTm9kZU9uQ2xpY2suYmluZCh0aGlz KSk7Q1NTLmFkZENsYXNzKHRoaXMudGh1bWJzVXBJY29uLCdoaWRkZW5fZWxlbScp O0NTUy5yZW1vdmVDbGFzcyh0aGlzLnVuZG9SZWdpb24sJ2hpZGRlbl9lbGVtJyk7 fS5iaW5kKHRoaXMpKTtFdmVudC5saXN0ZW4odGhpcy51bmRvUmVnaW9uLCdtb3Vz ZWxlYXZlJyxmdW5jdGlvbihldmVudCl7Q1NTLnJlbW92ZUNsYXNzKHRoaXMudGh1 bWJzVXBJY29uLCdoaWRkZW5fZWxlbScpO0NTUy5hZGRDbGFzcyh0aGlzLnVuZG9S ZWdpb24sJ2hpZGRlbl9lbGVtJyk7fS5iaW5kKHRoaXMpKTt9aWYoIXRoaXMuaXNC bG9ja2VkKXtFdmVudC5saXN0ZW4odGhpcy5jb25uZWN0QnV0dG9uLCdjbGljaycs dGhpcy5wcmltYXJ5TGlrZUJ1dHRvbk9uQ2xpY2suYmluZCh0aGlzKSk7aWYodGhp cy5ncmF5T3V0KUV2ZW50Lmxpc3Rlbih0aGlzLnRvbWJzdG9uZUNyb3NzLCdjbGlj aycsdGhpcy5jb25uZWN0VG9Ob2RlT25DbGljay5iaW5kKHRoaXMpKTt9aWYodGhp cy5hZG1pbkxpbmtzKWZvcih2YXIgYT0wO2E8dGhpcy5hZG1pbkxpbmtzLmxlbmd0 aDthKyspRXZlbnQubGlzdGVuKHRoaXMuYWRtaW5MaW5rc1thXSwnY2xpY2snLHRo aXMucHJlc2VudEFkbWluUGFnZS5iaW5kKHRoaXMpKTtpZih0aGlzLmVycm9yTGlu a3MpZm9yKHZhciBhPTA7YTx0aGlzLmVycm9yTGlua3MubGVuZ3RoO2ErKylFdmVu dC5saXN0ZW4odGhpcy5lcnJvckxpbmtzW2FdLCdjbGljaycsdGhpcy5wcmVzZW50 RXJyb3JEaWFsb2cuYmluZCh0aGlzKSk7aWYodGhpcy5jb25maXJtTGlua3MpZm9y KHZhciBnPTA7Zzx0aGlzLmNvbmZpcm1MaW5rcy5sZW5ndGg7ZysrKUV2ZW50Lmxp c3Rlbih0aGlzLmNvbmZpcm1MaW5rc1tnXSwnY2xpY2snLHRoaXMucHJlc2VudENv bmZpcm1EaWFsb2cuYmluZCh0aGlzKSk7aWYoaS5zaG93Q2FwdGNoYSl7dGhpcy5z aG93Q2FwdGNoYT10cnVlO3RoaXMuY29ubmVjdFRvTm9kZSh0cnVlKTt9aWYodGhp cy5mb3JjZUNvbW1lbnRIb29rcyl0aGlzLnNldHVwQ29tbWVudEhvb2tzKCQodGhp cy5mb3JjZUNvbW1lbnRIb29rcykpO3RoaXMudGV4dElucHV0TWFyZ2luV2l0aEJ1 dHRvbj01O3RoaXMud2lkdGhTeW5jQXJiaXRlcj1BcmJpdGVyLnN1YnNjcmliZSgn cGxhdGZvcm0vc29jaWFscGx1Z2lucy9zZW5kL3Jlc2l6ZScsdGhpcy5zeW5jU2Vu ZFdpZGdldFdpZHRoLmJpbmQodGhpcykpO0FyYml0ZXIuaW5mb3JtKCdwbGF0Zm9y bS9zb2NpYWxwbHVnaW5zL2xpa2UvcmVzaXplJyx7YnV0dG9uX3dpZHRoOnRoaXMu Y29tcHV0ZUJ1dHRvbkRpbWVuc2lvbnNXaXRoUGFkZGluZygpLndpZHRoLHdpZGdl dF93aWR0aDpWZWN0b3IyLmdldEVsZW1lbnREaW1lbnNpb25zKHRoaXMud2lkZ2V0 KS54LGxheW91dDp0aGlzLmxheW91dH0sQXJiaXRlci5CRUhBVklPUl9TVEFURSk7 QXJiaXRlci5zdWJzY3JpYmUoJ3BsYXRmb3JtL3NvY2lhbHBsdWdpbnMvZGlhbG9n JyxmdW5jdGlvbihtLGwpe2lmKGwuY29udHJvbGxlcklEIT09dGhpcy53aWRnZXRJ RCl0aGlzLm90aGVyQ29tbWVudFdpZGdldE9wZW49KGwuZXZlbnQ9PSdvcGVuJyk7 fS5iaW5kKHRoaXMpKTt0aGlzLnN1YnNjcmliZVRvU3luYyhpKTt9O2NvcHlfcHJv cGVydGllcyhFeHRlcm5hbE5vZGVDb25uZWN0V2lkZ2V0LHtTVEFOREFSRF9MQVlP VVQ6J3N0YW5kYXJkJyxCT1hfQ09VTlRfTEFZT1VUOidib3hfY291bnQnLEJVVFRP Tl9DT1VOVF9MQVlPVVQ6J2J1dHRvbl9jb3VudCcsU0lNUExFX0xBWU9VVDonc2lt cGxlJyxDT0xPUl9EQVJLOjAsQ09MT1JfTElHSFQ6MSxPUFRfSU5fRkFDRUJPT0tf QVBQX0lEOicxMjc3NjAwODcyMzc2MTAnLHVwZGF0ZUxvZ2dlZEluVXNlcjpmdW5j dGlvbihiKXt2YXIgYT1FeHRlcm5hbE5vZGVDb25uZWN0V2lkZ2V0LmNvbnRyb2xs ZXJNYW5hZ2luZ0xvZ2luO2Euc2V0TG9nZ2VkSW4oYik7YS5jb25uZWN0VG9Ob2Rl KHRydWUpO2EudXNlck9wdGVkT3V0PWZhbHNlO2RlbGV0ZSBFeHRlcm5hbE5vZGVD b25uZWN0V2lkZ2V0LmNvbnRyb2xsZXJNYW5hZ2luZ0xvZ2luO0FyYml0ZXIuaW5m b3JtKCdwbGF0Zm9ybS9zb2NpYWxwbHVnaW5zL2xvZ2luJyx7dXNlcjpiLnVzZXJ9 LEFyYml0ZXIuQkVIQVZJT1JfU1RBVEUpO1dpZGdldEFyYml0ZXIuaW5mb3JtKCdw bGF0Zm9ybS9zb2NpYWxwbHVnaW5zL2xvZ2luJyx7dXNlcjpiLnVzZXJ9LEFyYml0 ZXIuQkVIQVZJT1JfU1RBVEUpO30sb25Db21tZW50V2lkZ2V0TG9hZGVkOmZ1bmN0 aW9uKGEpe3ZhciBiPUV4dGVybmFsTm9kZUNvbm5lY3RXaWRnZXQuc2VsZjtkZWxl dGUgRXh0ZXJuYWxOb2RlQ29ubmVjdFdpZGdldC5zZWxmO2IuaW5qZWN0Q29tbWVu dFdpZGdldE1hcmt1cChhKTt9fSk7Y29weV9wcm9wZXJ0aWVzKEV4dGVybmFsTm9k ZUNvbm5lY3RXaWRnZXQucHJvdG90eXBlLHtnZXRTeW5jRW5kcG9pbnROYW1lOmZ1 bmN0aW9uKCl7fSxnZXRDb25uZWN0aW9uRW5kcG9pbnROYW1lOmZ1bmN0aW9uKCl7 fSxnZXRQbHVnaW5OYW1lOmZ1bmN0aW9uKCl7fSxzdWJzY3JpYmVUb1N5bmM6ZnVu Y3Rpb24oYSl7QXJiaXRlci5zdWJzY3JpYmUoJ3BsYXRmb3JtL3NvY2lhbHBsdWdp bnMvbG9naW4nLGZ1bmN0aW9uKGMsYil7aWYodGhpcy52aWV3ZXJJRCYmYi51c2Vy IT09dGhpcy52aWV3ZXJJRClkb2N1bWVudC5sb2NhdGlvbi5yZWxvYWQoKTt9LmJp bmQodGhpcykpO0FyYml0ZXIuc3Vic2NyaWJlKHRoaXMuZ2V0U3luY0VuZHBvaW50 TmFtZSgpLGZ1bmN0aW9uKGMsYil7aWYoYi5leHRlcm5hbFVybD09YS5leHRlcm5h bFVSTCl7dGhpcy51c2VyT3B0ZWRPdXQ9ZmFsc2U7dGhpcy51cGRhdGVXaWRnZXQo Yi5vcHRzLHRydWUpO319LmJpbmQodGhpcykpO30sc2V0UXVlcnlEYXRhOmZ1bmN0 aW9uKCl7Y29weV9wcm9wZXJ0aWVzKHRoaXMucG9wdXBPcHRJblBhcmFtcyx7cHJv dG9jb2w6d2luZG93LmxvY2F0aW9uLnByb3RvY29sLGV4dGVybmFsX3BhZ2VfdXJs OnRoaXMuZXh0ZXJuYWxVcmx9KTtpZih0aGlzLm51eCljb3B5X3Byb3BlcnRpZXMo dGhpcy5wb3B1cE9wdEluUGFyYW1zLHtudXg6dGhpcy5udXgscmVmZXJlcjp0aGlz LmlmcmFtZVJlZmVyZXJ9KTt9LHVwZGF0ZVdpZGdldDpmdW5jdGlvbihlLGQsYil7 dmFyIGE9KHRoaXMuYWxyZWFkeUNvbm5lY3RlZCE9ZS5ub3dDb25uZWN0ZWQpfHwo dGhpcy5zaG93Q29uZmlybSE9ZS5zaG93Q29uZmlybSk7aWYoIWQpQXJiaXRlci5p bmZvcm0odGhpcy5nZXRDb25uZWN0aW9uRW5kcG9pbnROYW1lKCksZSxBcmJpdGVy LkJFSEFWSU9SX1NUQVRFKTt0aGlzLmFscmVhZHlDb25uZWN0ZWQ9ZS5ub3dDb25u ZWN0ZWQ7dGhpcy52aWV3ZXJJc0FkbWluPWUuaXNBZG1pbjt0aGlzLnNob3dFcnJv cj1lLnNob3dFcnJvcjt0aGlzLnNob3dDb25maXJtPWUuc2hvd0NvbmZpcm07dGhp cy5hZG1pblVybD1lLmFkbWluVXJsO3RoaXMudXNlclByb2ZpbGU9ZS51c2VyUHJv ZmlsZTt0aGlzLmNvbm5lY3RTdG9yeUZiaWQ9ZS5jb25uZWN0U3RvcnlGYmlkO3Ro aXMuZXJyb3I9ZS5lcnJvcjtpZighZS5ub3dDb25uZWN0ZWQpdGhpcy5jbG9zZUNv bW1lbnRXaWRnZXQoKTtpZihhJiYhZHx8Yil7dmFyIGM9ZS5ub3dDb25uZWN0ZWQ/ J2VkZ2VDcmVhdGVkJzonZWRnZVJlbW92ZWQnO1VudmVyaWZpZWRYRC5zZW5kKHt0 eXBlOmN9KTt9aWYoYXx8dGhpcy5lcnJvcil0aGlzLnN5bmNXaWRnZXREaXNwbGF5 KCk7aWYoIWR8fGIpV2lkZ2V0QXJiaXRlci5pbmZvcm0odGhpcy5nZXRTeW5jRW5k cG9pbnROYW1lKCkse2V4dGVybmFsVXJsOnRoaXMuZXh0ZXJuYWxVcmwsb3B0czpl fSxBcmJpdGVyLkJFSEFWSU9SX1NUQVRFKTt9LHByZXNlbnRPcHRJbjpmdW5jdGlv bigpe0V4dGVybmFsTm9kZUNvbm5lY3RXaWRnZXQuY29udHJvbGxlck1hbmFnaW5n TG9naW49dGhpcztQbGF0Zm9ybU9wdEluUG9wdXAub3Blbih0aGlzLmdldFBsdWdp bk5hbWUoKSwnb3B0LmlubGlrZScsdGhpcy5wb3B1cE9wdEluUGFyYW1zKTtVbnZl cmlmaWVkWEQuc2VuZCh7dHlwZTonYXV0aFByb21wdGVkJ30pO30sc2V0TG9nZ2Vk SW46ZnVuY3Rpb24oYSl7dGhpcy52aWV3ZXJJRD1hLnVzZXI7dGhpcy5uZXdQcm9m aWxlUGljPWEucHJvZmlsZVBpYzt0aGlzLnBsYWNlRm9ybVVzZXJDaGVjayhhLmZv cm1Vc2VyQ2hlY2ssYS5mYkR0c2cpO30scGxhY2VGb3JtVXNlckNoZWNrOmZ1bmN0 aW9uKGIsYSl7d2luZG93LkVudi5mYl9kdHNnPWE7aWYoZ2UoJ3Bvc3RfZm9ybV9p ZCcpKXtET00ucmVwbGFjZSgkKCdwb3N0X2Zvcm1faWQnKSxIVE1MKGIpKTt9ZWxz ZSBET00uYXBwZW5kQ29udGVudChET00uZmluZChkb2N1bWVudCwnYm9keScpLEhU TUwoYikpO30sc3luY1dpZGdldFdpdGhTZXJ2ZXI6ZnVuY3Rpb24oYyl7dmFyIGI9 Yy5nZXRQYXlsb2FkKCk7aWYoYi5yZXF1aXJlc19sb2dpbil7dGhpcy51cGRhdGVX aWRnZXQoe25vd0Nvbm5lY3RlZDpmYWxzZSxpc0FkbWluOmZhbHNlfSxmYWxzZSk7 dGhpcy5wcmVzZW50T3B0SW4oKTtyZXR1cm47fXZhciBhPXtub3dDb25uZWN0ZWQ6 Yi5zdWNjZXNzJiZiLmFscmVhZHlfY29ubmVjdGVkLGlzQWRtaW46Yi5pc19hZG1p bixzaG93RXJyb3I6Yi5zaG93X2Vycm9yLHNob3dDb25maXJtOmIuc2hvd19jb25m aXJtLGFkbWluVXJsOmIuYWRtaW5fdXJsLHVzZXJQcm9maWxlOmIudXNlcl9wcm9m aWxlLGNvbm5lY3RTdG9yeUZiaWQ6Yi5zdG9yeV9mYmlkLGVycm9yOmIuZXJyb3Jf aW5mb307dGhpcy51cGRhdGVXaWRnZXQoYSwhYi5zdWNjZXNzLGIuc3VjY2Vzcyk7 aWYoYi5zdWNjZXNzJiZ0aGlzLnNob3dDYXB0Y2hhKXt3aW5kb3cub3BlbmVyLmxv Y2F0aW9uLnJlbG9hZCgpO3dpbmRvdy5jbG9zZSgpO319LGdldEJ1dHRvbkNvdW50 V2lkZ2V0V2lkdGg6ZnVuY3Rpb24oKXt2YXIgYT1ET00uZmluZCh0aGlzLndpZGdl dCwndGFibGUuY29ubmVjdF93aWRnZXRfaW50ZXJhY3RpdmVfYXJlYScpO3ZhciBi PUNTUy5nZXRTdHlsZShhLCd3aWR0aCcpO3JldHVybiBwYXJzZUludChiLDEwKTt9 LHNpemVOdW1iZXJDbG91ZDpmdW5jdGlvbigpe3RoaXMuY29sbGFwc2VkTnVtYmVy Q2xvdWRIZWlnaHQ9dGhpcy5nZXRDb2xsYXBzZWROdW1iZXJDbG91ZEhlaWdodCgp O3RoaXMuZXhwYW5kZWROdW1iZXJDbG91ZEhlaWdodD10aGlzLmNvbGxhcHNlZE51 bWJlckNsb3VkSGVpZ2h0K3RoaXMuZ2V0TnVtYmVyQ2xvdWRFeHRlbnNpb25IZWln aHQoKTtpZih0aGlzLmFscmVhZHlDb25uZWN0ZWQpQ1NTLnNldFN0eWxlKHRoaXMu bnVtYmVyQ2xvdWQsJ2hlaWdodCcsdGhpcy5leHBhbmRlZE51bWJlckNsb3VkSGVp Z2h0KydweCcpO0Jvb3Rsb2FkZXIubG9hZENvbXBvbmVudHMoWyd2ZWN0b3InXSxi aW5kKHRoaXMsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbXB1dGVCdXR0b25EaW1l bnNpb25zV2l0aFBhZGRpbmcoKS53aWR0aDtYRC5mb3JjZWRfbWluX3dpZHRoPWE7 dmFyIGI9aW50bF9sb2NhbGVfaXNfcnRsKCk7YS09MjtDU1Muc2V0U3R5bGUodGhp cy5udW1iZXJDbG91ZCwnd2lkdGgnLGErJ3B4Jyk7Q1NTLnNldFN0eWxlKHRoaXMu bnVtYmVyQ2xvdWQsJ3Zpc2liaWxpdHknLCd2aXNpYmxlJyk7YW5pbWF0aW9uKHRo aXMubnVtYmVyQ2xvdWQpLmZyb20oJ29wYWNpdHknLDApLnRvKCdvcGFjaXR5Jywx KS5kdXJhdGlvbigxMDApLmdvKCk7fSkpO30sZ2V0Q29sbGFwc2VkTnVtYmVyQ2xv dWRIZWlnaHQ6ZnVuY3Rpb24oKXt2YXIgYj1WZWN0b3IyLmdldEVsZW1lbnREaW1l bnNpb25zKHRoaXMubnVtYmVyQ2xvdWQpLnk7dmFyIGQ9cGFyc2VJbnQoQ1NTLmdl dFN0eWxlKHRoaXMubnVtYmVyQ2xvdWQsJ3BhZGRpbmdUb3AnKSwxMCk7dmFyIGM9 cGFyc2VJbnQoQ1NTLmdldFN0eWxlKHRoaXMubnVtYmVyQ2xvdWQsJ3BhZGRpbmdC b3R0b20nKSwxMCk7dmFyIGE9cGFyc2VJbnQoQ1NTLmdldFN0eWxlKHRoaXMubnVt YmVyQ2xvdWQsJ2JvcmRlcicpLDEwKTtyZXR1cm4gYi1kLWMtMjt9LGdldE51bWJl ckNsb3VkRXh0ZW5zaW9uSGVpZ2h0OmZ1bmN0aW9uKCl7Q1NTLmFkZENsYXNzKHRo aXMubnVtYmVyQ2xvdWRFeHRlbnNpb24sJ2Nvbm5lY3Rfd2lkZ2V0X29mZnNjcmVl bicpO2lmKCF0aGlzLmFscmVhZHlDb25uZWN0ZWQpQ1NTLnJlbW92ZUNsYXNzKHRo aXMubnVtYmVyQ2xvdWRFeHRlbnNpb24sJ2hpZGRlbl9lbGVtJyk7dmFyIGE9VmVj dG9yMi5nZXRFbGVtZW50RGltZW5zaW9ucyh0aGlzLm51bWJlckNsb3VkRXh0ZW5z aW9uKS55O2lmKCF0aGlzLmFscmVhZHlDb25uZWN0ZWQpQ1NTLmFkZENsYXNzKHRo aXMubnVtYmVyQ2xvdWRFeHRlbnNpb24sJ2hpZGRlbl9lbGVtJyk7Q1NTLnJlbW92 ZUNsYXNzKHRoaXMubnVtYmVyQ2xvdWRFeHRlbnNpb24sJ2Nvbm5lY3Rfd2lkZ2V0 X29mZnNjcmVlbicpO3JldHVybiBhO30scmVzdG9yZVJlbWluZGVyU3BhbjpmdW5j dGlvbihldmVudCl7aWYodGhpcy5yZW1pbmRlcklzVmlzaWJsZXx8dGhpcy5pbkFu aW1hdGlvbilyZXR1cm47dGhpcy5hbmltYXRlUmVtaW5kZXJTcGFuUmVhcHBlYXJh bmNlKCk7fSxhbmltYXRlUmVtaW5kZXJTcGFuUmVhcHBlYXJhbmNlOmZ1bmN0aW9u KCl7aWYodGhpcy5yZW1pbmRlcklzVmlzaWJsZXx8dGhpcy5pbkFuaW1hdGlvbily ZXR1cm47dGhpcy5pbkFuaW1hdGlvbj10cnVlO0NTUy5hZGRDbGFzcyh0aGlzLm51 bWJlckNsb3VkVW5saWtlU3BhbiwnaGlkZGVuX2VsZW0nKTtDU1Muc2V0U3R5bGUo dGhpcy5udW1iZXJDbG91ZFJlbWluZGVyU3Bhbiwnb3BhY2l0eScsMCk7Q1NTLnJl bW92ZUNsYXNzKHRoaXMubnVtYmVyQ2xvdWRSZW1pbmRlclNwYW4sJ2hpZGRlbl9l bGVtJyk7YW5pbWF0aW9uKHRoaXMubnVtYmVyQ2xvdWRSZW1pbmRlclNwYW4pLnRv KCdvcGFjaXR5JywxKS5kdXJhdGlvbigxMDApLm9uZG9uZShmdW5jdGlvbigpe3Ro aXMuaW5BbmltYXRpb249ZmFsc2U7dGhpcy5yZW1pbmRlcklzVmlzaWJsZT10cnVl O30uYmluZCh0aGlzKSkuZ28oKTt9LGV4cG9zZVVubGlrZVNwYW46ZnVuY3Rpb24o ZXZlbnQpe2lmKCF0aGlzLmFscmVhZHlDb25uZWN0ZWR8fHRoaXMucmVxdWlyZXNN b3VzZUxlYXZlRXZlbnR8fCF0aGlzLnJlbWluZGVySXNWaXNpYmxlfHx0aGlzLmlu QW5pbWF0aW9uKXJldHVybjt0aGlzLmluQW5pbWF0aW9uPXRydWU7Q1NTLmFkZENs YXNzKHRoaXMubnVtYmVyQ2xvdWRSZW1pbmRlclNwYW4sJ2hpZGRlbl9lbGVtJyk7 Q1NTLnNldFN0eWxlKHRoaXMubnVtYmVyQ2xvdWRVbmxpa2VTcGFuLCdvcGFjaXR5 JywwKTtDU1MucmVtb3ZlQ2xhc3ModGhpcy5udW1iZXJDbG91ZFVubGlrZVNwYW4s J2hpZGRlbl9lbGVtJyk7YW5pbWF0aW9uKHRoaXMubnVtYmVyQ2xvdWRVbmxpa2VT cGFuKS50bygnb3BhY2l0eScsMSkuZHVyYXRpb24oMTAwKS5vbmRvbmUoZnVuY3Rp b24oKXt0aGlzLmluQW5pbWF0aW9uPWZhbHNlO3RoaXMucmVtaW5kZXJJc1Zpc2li bGU9ZmFsc2U7fS5iaW5kKHRoaXMpKS5nbygpO30sY29uZGl0aW9uYWxseUFjdGl2 YXRlQnV0dG9uOmZ1bmN0aW9uKGV2ZW50KXt0aGlzLmNvbW1lbnRCdXR0b25Jc0Fj dGl2ZT10aGlzLmlubGluZUNvbW1lbnRJbnB1dC52YWx1ZS50cmltKCkubGVuZ3Ro PjA7fSx1cGRhdGVDb25uZWN0aW9uV2l0aENvbW1lbnQ6ZnVuY3Rpb24oZXZlbnQp e0V2ZW50LmtpbGwoZXZlbnQpO2lmKHRoaXMuY29tbWVudEJ1dHRvbklzQWN0aXZl KXt0aGlzLnBvc3RJbmxpbmVDb21tZW50KCk7dGhpcy5yZXNldElubGluZUNvbW1l bnQoKTt0aGlzLmNsb3NlSW5saW5lQ29tbWVudCgpO319LHBvc3RJbmxpbmVDb21t ZW50OmZ1bmN0aW9uKCl7dGhpcy5wb3N0VXNlckNvbW1lbnQodGhpcy5pbmxpbmVD b21tZW50SW5wdXQudmFsdWUudHJpbSgpKTt9LHJlc2V0SW5saW5lQ29tbWVudDpm dW5jdGlvbigpe3RoaXMuY29uY2VhbENvbW1lbnRCdXR0b24oKTt2YXIgYT10aGlz LmlubGluZUNvbW1lbnRJbnB1dC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7 dGhpcy5pbmxpbmVDb21tZW50SW5wdXQudmFsdWU9YTt9LHNob3dJbmxpbmVDb21t ZW50OmZ1bmN0aW9uKGV2ZW50KXtFdmVudC5raWxsKGV2ZW50KTtpZighdGhpcy5p bmxpbmVDb21tZW50Rmx5b3V0T3Blbnx8dGhpcy5pbmxpbmVDb21tZW50Rmx5b3V0 VmlzaWJsZXx8dGhpcy5zaG93Q29uZmlybXx8dGhpcy5lcnJvcilyZXR1cm47dGhp cy5pbmxpbmVDb21tZW50Rmx5b3V0VmlzaWJsZT10cnVlO0NTUy5zaG93KHRoaXMu aW5saW5lQ29tbWVudEZseW91dCk7fSxoaWRlSW5saW5lQ29tbWVudDpmdW5jdGlv bihldmVudCl7RXZlbnQua2lsbChldmVudCk7aWYoIXRoaXMuaW5saW5lQ29tbWVu dEZseW91dE9wZW58fCF0aGlzLmlubGluZUNvbW1lbnRGbHlvdXRWaXNpYmxlKXJl dHVybjtpZihET00uY29udGFpbnModGhpcy5pbmxpbmVDb21tZW50Rmx5b3V0LGV2 ZW50LmdldFJlbGF0ZWRUYXJnZXQoKSkpcmV0dXJuO3ZhciBiPXRoaXMuaW5saW5l Q29tbWVudElucHV0LnZhbHVlLnRyaW0oKTt2YXIgYT10aGlzLmlubGluZUNvbW1l bnRJbnB1dC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7aWYoYi5sZW5ndGg+ MCYmYiE9YSlyZXR1cm47dGhpcy5pbmxpbmVDb21tZW50Rmx5b3V0VmlzaWJsZT1m YWxzZTtDU1MuaGlkZSh0aGlzLmlubGluZUNvbW1lbnRGbHlvdXQpO30sY2xvc2VJ bmxpbmVDb21tZW50OmZ1bmN0aW9uKCl7dGhpcy5pbmxpbmVDb21tZW50Rmx5b3V0 VmlzaWJsZT1mYWxzZTt0aGlzLmlubGluZUNvbW1lbnRGbHlvdXRPcGVuPWZhbHNl O0NTUy5oaWRlKHRoaXMuaW5saW5lQ29tbWVudEZseW91dCk7dGhpcy5yZXNldElu bGluZUNvbW1lbnQoKTt9LGNvbmNlYWxDb21tZW50QnV0dG9uOmZ1bmN0aW9uKCl7 Q1NTLmFkZENsYXNzKHRoaXMuaW5saW5lQ29tbWVudEJ1dHRvbiwnaGlkZGVuX2Vs ZW0nKTtDU1Muc2V0U3R5bGUodGhpcy5pbmxpbmVDb21tZW50SW5wdXQsJ3dpZHRo Jyx0aGlzLnRleHRJbnB1dFdpZHRoV2l0aG91dEJ1dHRvbisncHgnKTtDU1Muc2V0 U3R5bGUodGhpcy5pbmxpbmVDb21tZW50SW5wdXQsJ21hcmdpbi1yaWdodCcsMCk7 fSxwb3NpdGlvbklubGluZUNvbW1lbnRGbHlvdXQ6ZnVuY3Rpb24oKXtDU1MuYWRk Q2xhc3ModGhpcy5pbmxpbmVDb21tZW50Rmx5b3V0LCdjb21tZW50X3dpZGdldF9v ZmZzY3JlZW4nKTtDU1MucmVtb3ZlQ2xhc3ModGhpcy5pbmxpbmVDb21tZW50Rmx5 b3V0LCdoaWRkZW5fZWxlbScpO3ZhciBiPTA7dmFyIGE9dGhpcy5jb21wdXRlQnV0 dG9uRGltZW5zaW9ucygpO3ZhciBlPWEuaGVpZ2h0O3ZhciBkPXRoaXMuZ3JheU91 dD9iOmIrMjA7dmFyIGc9aW50bF9sb2NhbGVfaXNfcnRsKCk/J3JpZ2h0JzonbGVm dCc7aWYodGhpcy5zaG93RmFjZXMpe3ZhciBrPURPTS5zY3J5KHRoaXMud2lkZ2V0 LCdzcGFuLmNvbm5lY3Rfd2lkZ2V0X3RleHQnKVswXTt2YXIgaD1pbnRsX2xvY2Fs ZV9pc19ydGwoKT8ncGFkZGluZ1JpZ2h0JzoncGFkZGluZ0xlZnQnO3ZhciBsPUNT Uy5nZXRTdHlsZShrLGgpO2Q9dGhpcy5ncmF5T3V0P2I6YitwYXJzZUludChsLDEw KTt2YXIgaT1WZWN0b3IyLmdldEVsZW1lbnREaW1lbnNpb25zKHRoaXMuc2FtcGxl Q29ubmVjdGlvbnMpLnk7ZT1pLTM7fXZhciBqPVZlY3RvcjIuZ2V0RWxlbWVudERp bWVuc2lvbnModGhpcy5zdW1tYXJ5VGV4dCkueTtpZihqPjE1KWUrPTI7Q1NTLnNl dFN0eWxlKHRoaXMuaW5saW5lQ29tbWVudEZseW91dCxnLGQrJ3B4Jyk7Q1NTLnNl dFN0eWxlKHRoaXMuaW5saW5lQ29tbWVudEZseW91dCwndG9wJywoLWUpKydweCcp O3ZhciBuPVZlY3RvcjIuZ2V0RWxlbWVudFBvc2l0aW9uKHRoaXMud2lkZ2V0LCdk b2N1bWVudCcpLng7dmFyIG09VmVjdG9yMi5nZXRFbGVtZW50RGltZW5zaW9ucyh0 aGlzLndpZGdldCkueDt2YXIgbz1uK20tZC01O0NTUy5zZXRTdHlsZSh0aGlzLmlu bGluZUNvbW1lbnRGbHlvdXQsJ3dpZHRoJyxvKydweCcpO0NTUy5yZW1vdmVDbGFz cyh0aGlzLmlubGluZUNvbW1lbnRCdXR0b24sJ2hpZGRlbl9lbGVtJyk7dmFyIGY9 VmVjdG9yMi5nZXRFbGVtZW50RGltZW5zaW9ucyh0aGlzLmlubGluZUNvbW1lbnRC dXR0b24pLng7Q1NTLmFkZENsYXNzKHRoaXMuaW5saW5lQ29tbWVudEJ1dHRvbiwn aGlkZGVuX2VsZW0nKTt2YXIgYz0odGhpcy5pbmxpbmVDb21tZW50Q2xvc2UpPzE1 OjA7dGhpcy50ZXh0SW5wdXRXaWR0aFdpdGhvdXRCdXR0b249by0yNC1jO3RoaXMu dGV4dElucHV0V2lkdGhXaXRoQnV0dG9uPXRoaXMudGV4dElucHV0V2lkdGhXaXRo b3V0QnV0dG9uLWYtdGhpcy50ZXh0SW5wdXRNYXJnaW5XaXRoQnV0dG9uLTE7Q1NT LnNldFN0eWxlKHRoaXMuaW5saW5lQ29tbWVudElucHV0LCd3aWR0aCcsdGhpcy50 ZXh0SW5wdXRXaWR0aFdpdGhvdXRCdXR0b24rJ3B4Jyk7Q1NTLnNldFN0eWxlKHRo aXMuaW5saW5lQ29tbWVudElucHV0LCdtYXJnaW4tcmlnaHQnLDApO0NTUy5yZW1v dmVDbGFzcyh0aGlzLmlubGluZUNvbW1lbnRGbHlvdXQsJ2NvbW1lbnRfd2lkZ2V0 X29mZnNjcmVlbicpO0NTUy5hZGRDbGFzcyh0aGlzLmlubGluZUNvbW1lbnRGbHlv dXQsJ2hpZGRlbl9lbGVtJyk7fSxwb3N0VXNlckNvbW1lbnQ6ZnVuY3Rpb24oYSl7 dmFyIGI9e2hyZWY6dGhpcy5leHRlcm5hbFVybCxub2RlX3R5cGU6dGhpcy5ub2Rl VHlwZSxlZGdlX3R5cGU6dGhpcy5lZGdlVHlwZSxwYWdlX2lkOnRoaXMucGFnZUlk LGNvbm5lY3RfdGV4dDp0aGlzLmNvbm5lY3RUZXh0LHN0b3J5X2ZiaWQ6dGhpcy5j b25uZWN0U3RvcnlGYmlkLGNvbW1lbnQ6YX07Qm9vdGxvYWRlci5sb2FkQ29tcG9u ZW50cyhbJ2FzeW5jJywnYXN5bmMtcG9zdGx1ZGUnXSxmdW5jdGlvbigpe25ldyBB c3luY1JlcXVlc3QoKS5zZXRVUkkodGhpcy5nZXRDb21tZW50QWpheEVuZHBvaW50 KCkpLnNldERhdGEoYikuc2V0TmVjdGFyTW9kdWxlRGF0YVNhZmUoKS5zZXROZWN0 YXJJbXByZXNzaW9uSWRTYWZlKCkuc2VuZCgpO30uYmluZCh0aGlzKSk7dGhpcy5j bG9zZUNvbW1lbnRXaWRnZXQoKTt9LGNsb3NlQ29tbWVudFdpZGdldDpmdW5jdGlv bigpe2lmKHRoaXMuY29tbWVudFdpZGdldE9wZW4pe2RlbGV0ZSB0aGlzLmluR3Jh Y2VQZXJpb2Q7ZGVsZXRlIHRoaXMuY29tbWVudFdpZGdldElzRXhwYW5kZWQ7dGhp cy5jb21tZW50V2lkZ2V0VmlzaWJsZT1mYWxzZTt0aGlzLmNvbW1lbnRXaWRnZXRP cGVuPWZhbHNlO1VudmVyaWZpZWRYRC5zZW5kKHt0eXBlOidkaXNtaXNzRWRnZUNv bW1lbnREaWFsb2cnfSk7fX0scHJlc2VudEFkbWluUGFnZTpmdW5jdGlvbigpe3Zh ciBhPSdfYmxhbmsnO3dpbmRvdy5vcGVuKHRoaXMuYWRtaW5VcmwudG9TdHJpbmco KSxhKTt9LHByZXNlbnRFcnJvckRpYWxvZzpmdW5jdGlvbigpe2lmKCF0aGlzLmVy cm9yLmVycm9yVXJpKXJldHVybjt2YXIgYj0nX2JsYW5rJzt2YXIgYT0ndG9vbGJh cj0wLCBzdGF0dXM9MCwgd2lkdGg9OTYwLCBoZWlnaHQ9MzAwJzt3aW5kb3cub3Bl bih0aGlzLmVycm9yLmVycm9yVXJpLnRvU3RyaW5nKCksYixhKTt9LHByZXNlbnRD b25maXJtRGlhbG9nOmZ1bmN0aW9uKCl7dmFyIGI9J19ibGFuayc7dmFyIGE9J3Rv b2xiYXI9MCxzdGF0dXM9MCx3aWR0aD00NTAsaGVpZ2h0PTIwMCxzY3JvbGxiYXJz PTAsbG9jYXRpb249MCxtZW51YmFyPTAnO2lmKCF3aW5kb3cuY29uZmlybURpYWxv Z1JldHVybil3aW5kb3cuY29uZmlybURpYWxvZ1JldHVybj17fTt3aW5kb3cuY29u ZmlybURpYWxvZ1JldHVyblt0aGlzLndpZGdldElEXT10aGlzO3ZhciBjPXRoaXMu Z2V0Q29uZmlybVVSTCgpO3dpbmRvdy5vcGVuKGMsYixhKTt9LHJldHVybkZyb21D b25maXJtRGlhbG9nOmZ1bmN0aW9uKGEpe2lmKGEpe3RoaXMuc2hvd0NvbmZpcm09 bnVsbDt0aGlzLmNvbmZpcm1lZENvbm5lY3Q9YTt0aGlzLmNvbm5lY3RUb05vZGUo IXRoaXMuYWxyZWFkeUNvbm5lY3RlZCk7fWVsc2UgdGhpcy51cGRhdGVXaWRnZXQo e25vd0Nvbm5lY3RlZDp0aGlzLmFscmVhZHlDb25uZWN0ZWQsc2hvd0NvbmZpcm06 bnVsbCxpc0FkbWluOnRoaXMudmlld2VySXNBZG1pbn0sZmFsc2UpO30sc3luY1dp ZGdldERpc3BsYXk6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmFscmVhZHlDb25uZWN0 ZWQ7dGhpcy5zZXRCdXR0b25TdGF0ZShhKTt0aGlzLnNob3dFbGVtZW50SWYodGhp cy5jb25uZWN0ZWRNZXNzYWdlLGEpO3RoaXMuc2hvd0VsZW1lbnRJZih0aGlzLm5v dENvbm5lY3RlZE1lc3NhZ2UsIWEpO2lmKHRoaXMuYWRtaW5TcGFucylmb3IodmFy IGI9MDtiPHRoaXMuYWRtaW5TcGFucy5sZW5ndGg7YisrKXRoaXMuc2hvd0VsZW1l bnRJZih0aGlzLmFkbWluU3BhbnNbYl0sdGhpcy52aWV3ZXJJc0FkbWluKTtpZih0 aGlzLmVycm9yU3BhbnMpZm9yKHZhciBjPTA7Yzx0aGlzLmVycm9yU3BhbnMubGVu Z3RoO2MrKyl0aGlzLnNob3dFbGVtZW50SWYodGhpcy5lcnJvclNwYW5zW2NdLHRo aXMuZXJyb3ImJih0aGlzLnZpZXdlcklzQWRtaW58fHRoaXMuc2hvd0Vycm9yKSk7 Zm9yKHZhciBmPTA7Zjx0aGlzLmNvbmZpcm1TcGFucy5sZW5ndGg7ZisrKXRoaXMu c2hvd0VsZW1lbnRJZih0aGlzLmNvbmZpcm1TcGFuc1tmXSwhdGhpcy5hbHJlYWR5 Q29ubmVjdGVkJiZ0aGlzLnNob3dDb25maXJtKTtmb3IodmFyIGQ9MDtkPHRoaXMu dW5saWtlU3BhbnMubGVuZ3RoO2QrKyl0aGlzLnNob3dFbGVtZW50SWYodGhpcy51 bmxpa2VTcGFuc1tkXSx0aGlzLmFscmVhZHlDb25uZWN0ZWQpO2lmKHRoaXMuc2hh cmVDb21tZW50U3BhbnMpZm9yKHZhciBlPTA7ZTx0aGlzLnNoYXJlQ29tbWVudFNw YW5zLmxlbmd0aDtlKyspdGhpcy5zaG93RWxlbWVudElmKHRoaXMuc2hhcmVDb21t ZW50U3BhbnNbZV0sYSk7aWYodGhpcy5sYXlvdXQhPT1FeHRlcm5hbE5vZGVDb25u ZWN0V2lkZ2V0LkJPWF9DT1VOVF9MQVlPVVQpdGhpcy5zaG93RWxlbWVudElmKHRo aXMuY29ubmVjdEJ1dHRvbiwoIXRoaXMudXNlRGlzY29ubmVjdExpbmt8fCFhKSYm IXRoaXMuc2hvd0NvbmZpcm0pO2lmKHRoaXMubGF5b3V0PT09RXh0ZXJuYWxOb2Rl Q29ubmVjdFdpZGdldC5CT1hfQ09VTlRfTEFZT1VUKXt0aGlzLm1hbmFnZUJveENv dW50QnV0dG9uQW5pbWF0aW9uKGEpO31lbHNlIGlmKHRoaXMubGF5b3V0PT09RXh0 ZXJuYWxOb2RlQ29ubmVjdFdpZGdldC5CVVRUT05fQ09VTlRfTEFZT1VUKXt0aGlz Lm1hbmFnZUJ1dHRvbkNvdW50QnV0dG9uQW5pbWF0aW9uKGEpO31lbHNlIGlmKHRo aXMubGF5b3V0PT09RXh0ZXJuYWxOb2RlQ29ubmVjdFdpZGdldC5TSU1QTEVfTEFZ T1VUKXt0aGlzLm1hbmFnZVNpbXBsZUJ1dHRvbkFuaW1hdGlvbihhKTt9ZWxzZSB0 aGlzLm1hbmFnZVN0YW5kYXJkQnV0dG9uQW5pbWF0aW9uKGEpO2lmKCF0aGlzLmxv Z2dlZEluVXNlclBob3RvRGl2KXJldHVybjtpZihhKXt0aGlzLnNsaWRlVXNlclBo b3RvSW4odGhpcy5sb2dnZWRJblVzZXJQaG90b0Rpdik7fWVsc2UgdGhpcy5zbGlk ZVVzZXJQaG90b091dCh0aGlzLmxvZ2dlZEluVXNlclBob3RvRGl2KTt9LG1hbmFn ZVN0YW5kYXJkQnV0dG9uQW5pbWF0aW9uOmZ1bmN0aW9uKGEpe2lmKHRoaXMuZ3Jh eU91dClyZXR1cm47aWYodGhpcy5hbHJlYWR5Q29ubmVjdGVkfHx0aGlzLnNob3dD b25maXJtKXt0aGlzLmhpZGVCdXR0b24odHJ1ZSk7fWVsc2UgdGhpcy5oaWRlQnV0 dG9uKGZhbHNlKTt9LHNldEJ1dHRvblN0YXRlOmZ1bmN0aW9uKGEpe2lmKGEpe0NT Uy5yZW1vdmVDbGFzcyh0aGlzLmNvbm5lY3RCdXR0b24sJ2xpa2VfYnV0dG9uX25v X2xpa2UnKTtDU1MuYWRkQ2xhc3ModGhpcy5jb25uZWN0QnV0dG9uLCdsaWtlX2J1 dHRvbl9saWtlJyk7dGhpcy5maXhJRUJ1dHRvbkRvdWJsZUxpbmVCdWcoKTt9ZWxz ZXtDU1MuYWRkQ2xhc3ModGhpcy5jb25uZWN0QnV0dG9uLCdsaWtlX2J1dHRvbl9u b19saWtlJyk7Q1NTLnJlbW92ZUNsYXNzKHRoaXMuY29ubmVjdEJ1dHRvbiwnbGlr ZV9idXR0b25fbGlrZScpO319LGZpeElFQnV0dG9uRG91YmxlTGluZUJ1ZzpmdW5j dGlvbigpe2lmKHRoaXMubGF5b3V0PT09RXh0ZXJuYWxOb2RlQ29ubmVjdFdpZGdl dC5TVEFOREFSRF9MQVlPVVQmJnVhLmllKCk8PTcmJiF0aGlzLmhhc0JlZW5GaXhl ZCl7dmFyIGE9dGhpcy5jb21wdXRlQnV0dG9uRGltZW5zaW9uc1dpdGhQYWRkaW5n KCk7Q1NTLnNldFN0eWxlKHRoaXMuY29ubmVjdEJ1dHRvbiwnd2lkdGgnLGEud2lk dGgrMSk7dGhpcy5oYXNCZWVuRml4ZWQ9dHJ1ZTt9fSxoaWRlQnV0dG9uOmZ1bmN0 aW9uKGEpe2lmKHRoaXMubGF5b3V0IT09J3N0YW5kYXJkJylyZXR1cm47aWYodGhp cy5vQW5pbWF0ZUJsaW5kKXRoaXMub0FuaW1hdGVCbGluZC5zdG9wKCk7dGhpcy5v QW5pbWF0ZUJsaW5kPWFuaW1hdGlvbih0aGlzLmNvbm5lY3RCdXR0b25TbGlkZXIp LmR1cmF0aW9uKDE1MCk7dmFyIGM9MSxiPWludGxfbG9jYWxlX2lzX3J0bCgpLGQ9 Yj8nbWFyZ2luUmlnaHQnOidtYXJnaW5MZWZ0JyxlPWI/J21hcmdpbkxlZnQnOidt YXJnaW5SaWdodCc7aWYoYSl7Q1NTLmFkZENsYXNzKHRoaXMuY29ubmVjdEJ1dHRv bkNvbnRhaW5lciwnaGlkZGVuJyk7dGhpcy5vQW5pbWF0ZUJsaW5kLm9uZG9uZShm dW5jdGlvbigpe0NTUy5zZXRTdHlsZSh0aGlzLmNvbm5lY3RCdXR0b25Db250YWlu ZXIsZCwnMnB4Jyk7Q1NTLnNldFN0eWxlKHRoaXMuY29ubmVjdEJ1dHRvbkNvbnRh aW5lciwndmlzaWJpbGl0eScsJ2hpZGRlbicpO0NTUy5hZGRDbGFzcyh0aGlzLmNv bmZpcm1hdGlvbkNlbGwsJ2Nvbm5lY3RfY29uZmlybWF0aW9uX2NlbGxfbGlrZScp O0NTUy5yZW1vdmVDbGFzcyh0aGlzLmNvbmZpcm1hdGlvbkNlbGwsJ2Nvbm5lY3Rf Y29uZmlybWF0aW9uX2NlbGxfbm9fbGlrZScpO3RoaXMub0FuaW1hdGVCbGluZD1u dWxsO30uYmluZCh0aGlzKSk7fWVsc2V7Q1NTLnNldFN0eWxlKHRoaXMuY29ubmVj dEJ1dHRvbkNvbnRhaW5lcixkLCcwcHgnKTtjPVZlY3RvcjIuZ2V0RWxlbWVudERp bWVuc2lvbnModGhpcy5jb25uZWN0QnV0dG9uKS54O3RoaXMub0FuaW1hdGVCbGlu ZC5vbmRvbmUoZnVuY3Rpb24oKXtDU1Muc2V0U3R5bGUodGhpcy5jb25uZWN0QnV0 dG9uU2xpZGVyLCdvdmVyZmxvdycsJ3Zpc2libGUnKTtDU1Muc2V0U3R5bGUodGhp cy5jb25uZWN0QnV0dG9uU2xpZGVyLCd3aWR0aCcsJ2F1dG8nKTtDU1MucmVtb3Zl Q2xhc3ModGhpcy5jb25maXJtYXRpb25DZWxsLCdjb25uZWN0X2NvbmZpcm1hdGlv bl9jZWxsX2xpa2UnKTtDU1MuYWRkQ2xhc3ModGhpcy5jb25maXJtYXRpb25DZWxs LCdjb25uZWN0X2NvbmZpcm1hdGlvbl9jZWxsX25vX2xpa2UnKTtDU1Muc2V0U3R5 bGUodGhpcy5jb25uZWN0QnV0dG9uQ29udGFpbmVyLCd2aXNpYmlsaXR5Jywndmlz aWJsZScpO0NTUy5yZW1vdmVDbGFzcyh0aGlzLmNvbm5lY3RCdXR0b25Db250YWlu ZXIsJ2hpZGRlbicpO3RoaXMub0FuaW1hdGVCbGluZD1udWxsO30uYmluZCh0aGlz KSk7fXRoaXMub0FuaW1hdGVCbGluZC50bygnd2lkdGgnLGMpLmJsaW5kKCkuZ28o KTt9LHNob3dFbGVtZW50SWY6ZnVuY3Rpb24oYSxiKXtpZighYSlyZXR1cm47aWYo Yil7Q1NTLnNob3coYSk7fWVsc2UgQ1NTLmhpZGUoYSk7fSxzbGlkZVVzZXJQaG90 b0luOmZ1bmN0aW9uKGIpe2lmKCFDU1MuaGFzQ2xhc3MoYiwnY29ubmVjdF93aWRn ZXRfdXNlcl9ub3RfY29ubmVjdGVkJykpcmV0dXJuO3ZhciBhPUNTUy5nZXRTdHls ZShiLCd3aWR0aCcpO0NTUy5zZXRTdHlsZShiLCd3aWR0aCcsMCk7Q1NTLnNldFN0 eWxlKGIsJ29wYWNpdHknLDApO0NTUy5yZW1vdmVDbGFzcyhiLCdjb25uZWN0X3dp ZGdldF91c2VyX25vdF9jb25uZWN0ZWQnKTthbmltYXRpb24oYikudG8oJ3dpZHRo JyxhKS5kdXJhdGlvbigxMDApLmNoZWNrcG9pbnQoKS50bygnb3BhY2l0eScsMSku ZHVyYXRpb24oNDAwKS5nbygpO30sc2xpZGVVc2VyUGhvdG9PdXQ6ZnVuY3Rpb24o YSl7aWYoQ1NTLmhhc0NsYXNzKGEsJ2Nvbm5lY3Rfd2lkZ2V0X3VzZXJfbm90X2Nv bm5lY3RlZCcpKXJldHVybjthbmltYXRpb24oYSkudG8oJ29wYWNpdHknLDApLmR1 cmF0aW9uKDEwMCkuY2hlY2twb2ludCguMjUpLnRvKCd3aWR0aCcsMCkuZHVyYXRp b24oMTAwKS5vbmRvbmUoZnVuY3Rpb24oKXtDU1MuYWRkQ2xhc3MoYSwnY29ubmVj dF93aWRnZXRfdXNlcl9ub3RfY29ubmVjdGVkJyk7Q1NTLnNldFN0eWxlKGEsJ3dp ZHRoJyxudWxsKTt9KS5nbygpO30scHJpbWFyeUxpa2VCdXR0b25PbkNsaWNrOmZ1 bmN0aW9uKGV2ZW50KXtpZih0aGlzLmdyYXlPdXQmJnRoaXMuYWxyZWFkeUNvbm5l Y3RlZClyZXR1cm47dGhpcy5jb25uZWN0VG9Ob2RlT25DbGljayhldmVudCk7fSxf Y2xpY2tMb2NrZWQ6ZmFsc2UsY29ubmVjdFRvTm9kZU9uQ2xpY2s6ZnVuY3Rpb24o ZXZlbnQpe0V2ZW50LmtpbGwoZXZlbnQpO2lmKCF0aGlzLl9jbGlja0xvY2tlZCl7 dGhpcy5fY2xpY2tMb2NrZWQ9dHJ1ZTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhp cy5fY2xpY2tMb2NrZWQ9ZmFsc2U7fS5iaW5kKHRoaXMpLDEwMDApO2lmKHRoaXMu dmlld2VySUQ9PTB8fHRoaXMudXNlck9wdGVkT3V0KXt0aGlzLnByZXNlbnRPcHRJ bigpO31lbHNlIHRoaXMuY29ubmVjdFRvTm9kZSghdGhpcy5hbHJlYWR5Q29ubmVj dGVkKTt9fSxjb25uZWN0VG9Ob2RlOmZ1bmN0aW9uKGQpe2lmKCFkKXtpZih0aGlz LmxheW91dD09PUV4dGVybmFsTm9kZUNvbm5lY3RXaWRnZXQuU0lNUExFX0xBWU9V VClyZXR1cm47aWYodGhpcy5sYXlvdXQ9PT1FeHRlcm5hbE5vZGVDb25uZWN0V2lk Z2V0LlNUQU5EQVJEX0xBWU9VVCYmIXRoaXMudXNpbmdDb25uZWN0TGlicmFyeSl7 Q1NTLmFkZENsYXNzKHRoaXMudXNlckFjdGlvblRleHRTcGFuLCdoaWRkZW5fZWxl bScpO0NTUy5yZW1vdmVDbGFzcyh0aGlzLnN1bW1hcnlUZXh0U3BhbiwnaGlkZGVu X2VsZW0nKTtDU1Muc2V0U3R5bGUodGhpcy5zdW1tYXJ5VGV4dFNwYW4sJ29wYWNp dHknLDEpO31pZih0aGlzLnNoYXJlQ29tbWVudFNwYW5zKWZvcih2YXIgYj0wO2I8 dGhpcy5zaGFyZUNvbW1lbnRTcGFucy5sZW5ndGg7YisrKUNTUy5hZGRDbGFzcyh0 aGlzLnNoYXJlQ29tbWVudFNwYW5zW2JdLCdoaWRkZW5fZWxlbScpO2lmKHRoaXMu Y29tbWVudFdpZGdldE9wZW4pe3RoaXMuY2xvc2VDb21tZW50V2lkZ2V0KCk7fWVs c2UgaWYodGhpcy5pbmxpbmVDb21tZW50Rmx5b3V0T3Blbil0aGlzLmNsb3NlSW5s aW5lQ29tbWVudCgpO310aGlzLnVwZGF0ZVdpZGdldCh7bm93Q29ubmVjdGVkOiF0 aGlzLmFscmVhZHlDb25uZWN0ZWQsaXNBZG1pbjp0aGlzLnZpZXdlcklzQWRtaW59 LHRydWUpO3ZhciBhPXtocmVmOnRoaXMuZXh0ZXJuYWxVcmwsbm9kZV90eXBlOnRo aXMubm9kZVR5cGUsZWRnZV90eXBlOnRoaXMuZWRnZVR5cGUscGFnZV9pZDp0aGlz LnBhZ2VJZCxsYXlvdXQ6dGhpcy5sYXlvdXQsaXNfcGVyc29uYWxpemVkOnRoaXMu aXNQZXJzb25hbGl6ZWQsc2hvd19jYXB0Y2hhOnRoaXMuc2hvd0NhcHRjaGEsY29u bmVjdF90ZXh0OnRoaXMuY29ubmVjdFRleHQscmVmOnRoaXMucmVmLG5vd19jb25u ZWN0ZWQ6ZCxwb3N0X2Zvcm1faWQ6JCgncG9zdF9mb3JtX2lkJykudmFsdWUsaWZy YW1lX3JlZmVyZXI6dGhpcy5pZnJhbWVSZWZlcmVyfTtpZih0aGlzLmNvbmZpcm1l ZENvbm5lY3QpYS5jb25maXJtPTE7Qm9vdGxvYWRlci5sb2FkQ29tcG9uZW50cyhb J2FzeW5jJywnYXN5bmMtcG9zdGx1ZGUnXSxmdW5jdGlvbigpe25ldyBBc3luY1Jl cXVlc3QoKS5zZXRVUkkodGhpcy5nZXRBamF4RW5kcG9pbnQoKSkuc2V0SGFuZGxl cih0aGlzLnN5bmNXaWRnZXRXaXRoU2VydmVyLmJpbmQodGhpcykpLnNldERhdGEo YSkuc2V0TmVjdGFyTW9kdWxlRGF0YVNhZmUoKS5zZXROZWN0YXJJbXByZXNzaW9u SWRTYWZlKCkuc2VuZCgpO30uYmluZCh0aGlzKSk7aWYoZCl7aWYodGhpcy5sYXlv dXQ9PT1FeHRlcm5hbE5vZGVDb25uZWN0V2lkZ2V0LkJPWF9DT1VOVF9MQVlPVVQp dGhpcy5yZXF1aXJlc01vdXNlTGVhdmVFdmVudD10cnVlO2lmKHRoaXMubGF5b3V0 PT09RXh0ZXJuYWxOb2RlQ29ubmVjdFdpZGdldC5TVEFOREFSRF9MQVlPVVQmJiF0 aGlzLnVzaW5nQ29ubmVjdExpYnJhcnkpe0NTUy5zZXRTdHlsZSh0aGlzLnVzZXJB Y3Rpb25UZXh0U3Bhbiwnb3BhY2l0eScsMSk7Q1NTLnJlbW92ZUNsYXNzKHRoaXMu dXNlckFjdGlvblRleHRTcGFuLCdoaWRkZW5fZWxlbScpO0NTUy5hZGRDbGFzcyh0 aGlzLnN1bW1hcnlUZXh0U3BhbiwnaGlkZGVuX2VsZW0nKTtFdmVudC5saXN0ZW4o dGhpcy53aWRnZXQsJ21vdXNlbGVhdmUnLHRoaXMudHJhbnNpdGlvbkJldHdlZW5N ZXNzYWdlcy5iaW5kKHRoaXMpKTt9aWYodGhpcy5zaGFyZUNvbW1lbnRTcGFucyl7 Zm9yKHZhciBjPTA7Yzx0aGlzLnNoYXJlQ29tbWVudFNwYW5zO2MrKylDU1MucmVt b3ZlQ2xhc3ModGhpcy5zaGFyZUNvbW1lbnRTcGFuc1tjXSwnaGlkZGVuX2VsZW0n KTt9ZWxzZSBpZih0aGlzLnN1cHBvcnRDb21tZW50aW5nKXRoaXMucHJlc2VudENv bW1lbnRpbmdPcHRpb24oKTt0aGlzLnJlcG9zaXRpb25GYWNlcGlsZVZlcnRpY2Fs bHkoKTt9fSx0cmFuc2l0aW9uQmV0d2Vlbk1lc3NhZ2VzOmZ1bmN0aW9uKGV2ZW50 KXtpZighdGhpcy5hbHJlYWR5Q29ubmVjdGVkfHxDU1MuaGFzQ2xhc3ModGhpcy51 c2VyQWN0aW9uVGV4dFNwYW4sJ2hpZGRlbl9lbGVtJykpcmV0dXJuO2FuaW1hdGlv bih0aGlzLnVzZXJBY3Rpb25UZXh0U3BhbikudG8oJ29wYWNpdHknLDApLmR1cmF0 aW9uKDUwMCkub25kb25lKGZ1bmN0aW9uKCl7Q1NTLmFkZENsYXNzKHRoaXMudXNl ckFjdGlvblRleHRTcGFuLCdoaWRkZW5fZWxlbScpO0NTUy5zZXRTdHlsZSh0aGlz LnN1bW1hcnlUZXh0U3Bhbiwnb3BhY2l0eScsMCk7Q1NTLnJlbW92ZUNsYXNzKHRo aXMuc3VtbWFyeVRleHRTcGFuLCdoaWRkZW5fZWxlbScpO2FuaW1hdGlvbih0aGlz LnN1bW1hcnlUZXh0U3BhbikudG8oJ29wYWNpdHknLDEpLmR1cmF0aW9uKDUwMCku b25kb25lKGZ1bmN0aW9uKCl7dGhpcy5yZXBvc2l0aW9uRmFjZXBpbGVWZXJ0aWNh bGx5KCk7fS5iaW5kKHRoaXMpKS5nbygpO3RoaXMucG9zaXRpb25JbmxpbmVDb21t ZW50Rmx5b3V0KCk7fS5iaW5kKHRoaXMpKS5nbygpO30scHJlc2VudENvbW1lbnRp bmdPcHRpb246ZnVuY3Rpb24oKXtBcmJpdGVyLmluZm9ybSgncGxhdGZvcm0vc29j aWFscGx1Z2lucy9kaWFsb2cnLHtjb250cm9sbGVySUQ6dGhpcy53aWRnZXRJRCxl dmVudDonb3Blbid9KTtpZih0aGlzLnVzaW5nQ29ubmVjdExpYnJhcnkpe0V4dGVy bmFsTm9kZUNvbm5lY3RXaWRnZXQuc2VsZj10aGlzO3ZhciBhPXt0eXBlOidwcmVz ZW50RWRnZUNvbW1lbnREaWFsb2cnLG1hc3RlckZyYW1lTmFtZTp3aW5kb3cubmFt ZSx2ZXJzaW9uOjJ9O2lmKHRoaXMubGF5b3V0PT1FeHRlcm5hbE5vZGVDb25uZWN0 V2lkZ2V0LkJPWF9DT1VOVF9MQVlPVVQpe2EucHJlQ29tcHV0ZWRXaWR0aE9mZnNl dD10aGlzLmNvbXB1dGVCdXR0b25EaW1lbnNpb25zV2l0aFBhZGRpbmcoKS53aWR0 aDtpZighaW50bF9sb2NhbGVfaXNfcnRsKCkpYS5wcmVDb21wdXRlZFdpZHRoT2Zm c2V0Kz04O31pZih0aGlzLnNvY2lhbEJhcil7YS5sZWZ0PXBhcnNlSW50KENTUy5n ZXRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZmlsZScpLCd3aWR0 aCcpLDEwKSsxO31lbHNlIGlmKHRoaXMuaGFzU2VuZCYmdGhpcy5sYXlvdXQ9PUV4 dGVybmFsTm9kZUNvbm5lY3RXaWRnZXQuU1RBTkRBUkRfTEFZT1VUKWEucHJlQ29t cHV0ZWRXaWR0aE9mZnNldD10aGlzLmludmVydGVkQnV0dG9ucz8wOjY1O1VudmVy aWZpZWRYRC5zZW5kKGEpO3RoaXMuY29tbWVudFdpZGdldE9wZW49dHJ1ZTt0aGlz LmNvbW1lbnRXaWRnZXRWaXNpYmxlPXRydWU7dGhpcy5jb21tZW50V2lkZ2V0RXhw YW5kZWQ9dHJ1ZTt9ZWxzZSBpZih0aGlzLnVzaW5nSW5saW5lQ29tbWVudGluZylp ZighdGhpcy5pbmxpbmVDb21tZW50TGlzdGVuZXJzSW5pdGlhbGl6ZWQpe3RoaXMu dW53cmFwTWFya3VwKCdjb25uZWN0LXdpZGdldC1jb21tZW50LWJveC1tYXJrdXAn KTt0aGlzLmluaXRpYWxpemVJbmxpbmVDb21tZW50TGlzdGVuZXJzKCk7dGhpcy5v cGVuSW5saW5lQ29tbWVudEZseW91dCgpO3RoaXMucG9zaXRpb25JbmxpbmVDb21t ZW50Rmx5b3V0KCk7dGhpcy5pbmxpbmVDb21tZW50TGlzdGVuZXJzSW5pdGlhbGl6 ZWQ9dHJ1ZTt9ZWxzZXt0aGlzLnBvc2l0aW9uSW5saW5lQ29tbWVudEZseW91dCgp O3RoaXMub3BlbklubGluZUNvbW1lbnRGbHlvdXQoKTt9fSx1bndyYXBNYXJrdXA6 ZnVuY3Rpb24oYSl7aWYodGhpcy51bndyYXBwZWRNYXJrdXBbYV0pcmV0dXJuO3Zh ciBjPSQoYSksYj1jLmlubmVySFRNTDtiPWIuc3Vic3RyKDQsYi5sZW5ndGgtNyk7 Yy5pbm5lckhUTUw9Yjt0aGlzLnVud3JhcHBlZE1hcmt1cFthXT10cnVlO30saW5p dGlhbGl6ZUlubGluZUNvbW1lbnRMaXN0ZW5lcnM6ZnVuY3Rpb24oKXt0aGlzLmlu bGluZUNvbW1lbnRGbHlvdXQ9RE9NLmZpbmQodGhpcy53aWRnZXQsJy5jb25uZWN0 X3dpZGdldF9jb21tZW50X2JveCcpO3RoaXMuaW5saW5lQ29tbWVudElucHV0PURP TS5maW5kKHRoaXMuaW5saW5lQ29tbWVudEZseW91dCwnLmNvbm5lY3Rfd2lkZ2V0 X2NvbW1lbnRfdGV4dGlucHV0Jyk7dGhpcy5pbmxpbmVDb21tZW50QnV0dG9uPURP TS5maW5kKHRoaXMuaW5saW5lQ29tbWVudEZseW91dCwnLmNvbm5lY3Rfd2lkZ2V0 X2NvbW1lbnRfYnV0dG9uJyk7dGhpcy5pbmxpbmVDb21tZW50Q2xvc2U9RE9NLnNj cnkodGhpcy5pbmxpbmVDb21tZW50Rmx5b3V0LCcuY29ubmVjdF93aWRnZXRfY29t bWVudF9jbG9zZV9idXR0b24nKTtpZih0aGlzLmlubGluZUNvbW1lbnRDbG9zZS5s ZW5ndGg+MCl0aGlzLmlubGluZUNvbW1lbnRDbG9zZT10aGlzLmlubGluZUNvbW1l bnRDbG9zZVswXTt0aGlzLmNvbW1lbnRCdXR0b25Jc0FjdGl2ZT1mYWxzZTtFdmVu dC5saXN0ZW4odGhpcy5pbmxpbmVDb21tZW50SW5wdXQsJ2tleXVwJyx0aGlzLmNv bmRpdGlvbmFsbHlBY3RpdmF0ZUJ1dHRvbi5iaW5kKHRoaXMpKTtFdmVudC5saXN0 ZW4odGhpcy5pbmxpbmVDb21tZW50SW5wdXQsJ2ZvY3VzJyx0aGlzLmV4cG9zZUNv bW1lbnRCdXR0b24uYmluZCh0aGlzKSk7RXZlbnQubGlzdGVuKHRoaXMuaW5saW5l Q29tbWVudEJ1dHRvbiwnY2xpY2snLHRoaXMudXBkYXRlQ29ubmVjdGlvbldpdGhD b21tZW50LmJpbmQodGhpcykpO0V2ZW50Lmxpc3Rlbih0aGlzLndpZGdldCwnbW91 c2VvdXQnLHRoaXMuaGlkZUlubGluZUNvbW1lbnQuYmluZCh0aGlzKSk7RXZlbnQu bGlzdGVuKHRoaXMud2lkZ2V0LCdtb3VzZW92ZXInLHRoaXMuc2hvd0lubGluZUNv bW1lbnQuYmluZCh0aGlzKSk7aWYodGhpcy5pbmxpbmVDb21tZW50Q2xvc2UpRXZl bnQubGlzdGVuKHRoaXMuaW5saW5lQ29tbWVudENsb3NlLCdjbGljaycsZnVuY3Rp b24oZXZlbnQpe2Zvcih2YXIgYT0wO2E8dGhpcy5zaGFyZUNvbW1lbnRTcGFucy5s ZW5ndGg7YSsrKUNTUy5yZW1vdmVDbGFzcyh0aGlzLnNoYXJlQ29tbWVudFNwYW5z W2FdLCdoaWRkZW5fZWxlbScpO3RoaXMuY2xvc2VJbmxpbmVDb21tZW50KCk7fS5i aW5kKHRoaXMpKTt9LGV4cG9zZUNvbW1lbnRCdXR0b246ZnVuY3Rpb24oZXZlbnQp e2lmKCFDU1MuaGFzQ2xhc3ModGhpcy5pbmxpbmVDb21tZW50QnV0dG9uLCdoaWRk ZW5fZWxlbScpKXJldHVybjtDU1MucmVtb3ZlQ2xhc3ModGhpcy5pbmxpbmVDb21t ZW50QnV0dG9uLCdoaWRkZW5fZWxlbScpO0NTUy5zZXRTdHlsZSh0aGlzLmlubGlu ZUNvbW1lbnRJbnB1dCwnd2lkdGgnLHRoaXMudGV4dElucHV0V2lkdGhXaXRoQnV0 dG9uKydweCcpO0NTUy5zZXRTdHlsZSh0aGlzLmlubGluZUNvbW1lbnRJbnB1dCwn bWFyZ2luLXJpZ2h0Jyx0aGlzLnRleHRJbnB1dE1hcmdpbldpdGhCdXR0b24rJ3B4 Jyk7fSxvcGVuSW5saW5lQ29tbWVudEZseW91dDpmdW5jdGlvbigpe0NTUy5zaG93 KHRoaXMuaW5saW5lQ29tbWVudEZseW91dCk7dGhpcy5pbmxpbmVDb21tZW50Rmx5 b3V0T3Blbj10cnVlO3RoaXMuaW5saW5lQ29tbWVudEZseW91dFZpc2libGU9dHJ1 ZTt9LG1hbmFnZUJveENvdW50QnV0dG9uQW5pbWF0aW9uOmZ1bmN0aW9uKGEpe2lm KGEmJiF0aGlzLnNob3dDb25maXJtKXt0aGlzLmFuaW1hdGVCb3hDb3VudEJ1dHRv bkRpc2FwcGVhcmFuY2UoKTt9ZWxzZSB0aGlzLmFuaW1hdGVCb3hDb3VudEJ1dHRv blJlYXBwZWFyYW5jZSgpO30sYW5pbWF0ZUJveENvdW50QnV0dG9uRGlzYXBwZWFy YW5jZTpmdW5jdGlvbigpe2lmKHRoaXMuZ3JheU91dClyZXR1cm47Q1NTLmFkZENs YXNzKHRoaXMuY29ubmVjdEJ1dHRvbiwnaGlkZGVuX2VsZW0nKTtDU1Muc2V0U3R5 bGUodGhpcy5udW1iZXJDbG91ZEV4dGVuc2lvbiwnb3BhY2l0eScsMCk7Q1NTLnJl bW92ZUNsYXNzKHRoaXMubnVtYmVyQ2xvdWRFeHRlbnNpb24sJ2hpZGRlbl9lbGVt Jyk7Q1NTLmFkZENsYXNzKHRoaXMubnVtYmVyQ2xvdWROdWIsJ2hpZGRlbl9lbGVt Jyk7Q1NTLmFkZENsYXNzKHRoaXMubnVtYmVyQ2xvdWRVbmxpa2VTcGFuLCdoaWRk ZW5fZWxlbScpO0NTUy5yZW1vdmVDbGFzcyh0aGlzLm51bWJlckNsb3VkUmVtaW5k ZXJTcGFuLCdoaWRkZW5fZWxlbScpO2FuaW1hdGlvbih0aGlzLm51bWJlckNsb3Vk KS50bygnaGVpZ2h0Jyx0aGlzLmV4cGFuZGVkTnVtYmVyQ2xvdWRIZWlnaHQpLmR1 cmF0aW9uKDEwMCkub25kb25lKGZ1bmN0aW9uKCl7YW5pbWF0aW9uKHRoaXMubnVt YmVyQ2xvdWRFeHRlbnNpb24pLmZyb20oJ29wYWNpdHknLDApLnRvKCdvcGFjaXR5 JywxKS5kdXJhdGlvbigxMDApLmdvKCk7fS5iaW5kKHRoaXMpKS5nbygpO30sYW5p bWF0ZUJveENvdW50QnV0dG9uUmVhcHBlYXJhbmNlOmZ1bmN0aW9uKCl7Q1NTLmFk ZENsYXNzKHRoaXMubnVtYmVyQ2xvdWRFeHRlbnNpb24sJ2hpZGRlbl9lbGVtJyk7 YW5pbWF0aW9uKHRoaXMubnVtYmVyQ2xvdWQpLnRvKCdoZWlnaHQnLHRoaXMuY29s bGFwc2VkTnVtYmVyQ2xvdWRIZWlnaHQpLmR1cmF0aW9uKDc1KS5vbmRvbmUoZnVu Y3Rpb24oKXtpZih0aGlzLnNob3dDb25maXJtKXtmb3IodmFyIGE9MDthPHRoaXMu Y29uZmlybVNwYW5zLmxlbmd0aDthKyspQ1NTLnJlbW92ZUNsYXNzKHRoaXMuY29u ZmlybVNwYW5zW2FdLCdoaWRkZW5fZWxlbScpO31lbHNle0NTUy5zZXRTdHlsZSh0 aGlzLmNvbm5lY3RCdXR0b24sJ29wYWNpdHknLDApO0NTUy5yZW1vdmVDbGFzcyh0 aGlzLmNvbm5lY3RCdXR0b24sJ2hpZGRlbl9lbGVtJyk7YW5pbWF0aW9uKHRoaXMu Y29ubmVjdEJ1dHRvbikuZnJvbSgnb3BhY2l0eScsMCkudG8oJ29wYWNpdHknLDEp LmR1cmF0aW9uKDc1KS5vbmRvbmUoZnVuY3Rpb24oKXtDU1Muc2V0U3R5bGUodGhp cy5udW1iZXJDbG91ZE51Yiwnb3BhY2l0eScsMCk7Q1NTLnJlbW92ZUNsYXNzKHRo aXMubnVtYmVyQ2xvdWROdWIsJ2hpZGRlbl9lbGVtJyk7YW5pbWF0aW9uKHRoaXMu bnVtYmVyQ2xvdWROdWIpLmZyb20oJ29wYWNpdHknLDApLnRvKCdvcGFjaXR5Jywx KS5kdXJhdGlvbig1MCkuZ28oKTt9LmJpbmQodGhpcykpLmdvKCk7fX0uYmluZCh0 aGlzKSkuZ28oKTt9LG1hbmFnZUJ1dHRvbkNvdW50QnV0dG9uQW5pbWF0aW9uOmZ1 bmN0aW9uKGEpe2lmKGEmJiF0aGlzLnNob3dDb25maXJtKXt0aGlzLmFuaW1hdGVC dXR0b25Db3VudEJ1dHRvbkRpc2FwcGVhcmFuY2UoKTt9ZWxzZSB0aGlzLmFuaW1h dGVCdXR0b25Db3VudEJ1dHRvblJlYXBwZWFyYW5jZSgpO2lmKCF0aGlzLmdyYXlP dXQpe0NTUy5yZW1vdmVDbGFzcyh0aGlzLnRodW1ic1VwSWNvbiwnaGlkZGVuX2Vs ZW0nKTtDU1MuYWRkQ2xhc3ModGhpcy51bmRvUmVnaW9uLCdoaWRkZW5fZWxlbScp O319LG1hbmFnZVNpbXBsZUJ1dHRvbkFuaW1hdGlvbjpmdW5jdGlvbihhKXtpZih0 aGlzLmdyYXlPdXQpcmV0dXJuO2lmKGEmJiF0aGlzLnNob3dDb25maXJtKXt0aGlz LmFuaW1hdGVTaW1wbGVCdXR0b25EaXNhcHBlYXJhbmNlKCk7fWVsc2UgdGhpcy5h bmltYXRlU2ltcGxlQnV0dG9uUmVhcHBlYXJhbmNlKCk7fSxhbmltYXRlQnV0dG9u Q291bnRCdXR0b25EaXNhcHBlYXJhbmNlOmZ1bmN0aW9uKCl7aWYoIXRoaXMuZ3Jh eU91dClhbmltYXRpb24odGhpcy5jb25uZWN0QnV0dG9uKS5mcm9tKCdvcGFjaXR5 JywxKS50bygnb3BhY2l0eScsMCkuZnJvbSgnd2lkdGgnLHRoaXMub3JpZ2luYWxC dXR0b25XaWR0aCkudG8oJ3dpZHRoJywnMHB4Jykub25kb25lKGZ1bmN0aW9uKCl7 Q1NTLmFkZENsYXNzKHRoaXMuY29ubmVjdEJ1dHRvbiwnaGlkZGVuX2VsZW0nKTt9 LmJpbmQodGhpcykpLmR1cmF0aW9uKDEwMCkuZ28oKTthbmltYXRpb24odGhpcy5u dW1iZXJFeGNsdWRpbmcpLmZyb20oJ29wYWNpdHknLDEpLnRvKCdvcGFjaXR5Jyww KS5kdXJhdGlvbigxMDApLm9uZG9uZShmdW5jdGlvbigpe0NTUy5hZGRDbGFzcyh0 aGlzLm51bWJlckV4Y2x1ZGluZywnaGlkZGVuX2VsZW0nKTtDU1Muc2V0U3R5bGUo dGhpcy5zdW1tYXJ5SW5jbHVkaW5nLCdvcGFjaXR5JywwKTtDU1MucmVtb3ZlQ2xh c3ModGhpcy5zdW1tYXJ5SW5jbHVkaW5nLCdoaWRkZW5fZWxlbScpO2FuaW1hdGlv bih0aGlzLnN1bW1hcnlJbmNsdWRpbmcpLmZyb20oJ29wYWNpdHknLDApLnRvKCdv cGFjaXR5JywxKS5kdXJhdGlvbigxMDApLmdvKCk7fS5iaW5kKHRoaXMpKS5nbygp O2Zvcih2YXIgYT0wO2E8dGhpcy5jb25maXJtU3BhbnMubGVuZ3RoO2ErKylDU1Mu YWRkQ2xhc3ModGhpcy5jb25maXJtU3BhbnNbYV0sJ2hpZGRlbl9lbGVtJyk7aWYo dGhpcy5ncmF5T3V0KUNTUy5yZW1vdmVDbGFzcyh0aGlzLmNvbm5lY3RCdXR0b24s J2hpZGRlbl9lbGVtJyk7fSxhbmltYXRlU2ltcGxlQnV0dG9uRGlzYXBwZWFyYW5j ZTpmdW5jdGlvbigpe2FuaW1hdGlvbih0aGlzLmNvbm5lY3RCdXR0b24pLmZyb20o J29wYWNpdHknLDEpLnRvKCdvcGFjaXR5JywwKS5mcm9tKCd3aWR0aCcsdGhpcy5v cmlnaW5hbEJ1dHRvbldpZHRoKS50bygnd2lkdGgnLCcwcHgnKS5vbmRvbmUoZnVu Y3Rpb24oKXtDU1MuYWRkQ2xhc3ModGhpcy5jb25uZWN0QnV0dG9uLCdoaWRkZW5f ZWxlbScpO0NTUy5zZXRTdHlsZSh0aGlzLnN1bW1hcnlJbmNsdWRpbmcsJ29wYWNp dHknLDApO0NTUy5yZW1vdmVDbGFzcyh0aGlzLnN1bW1hcnlJbmNsdWRpbmcsJ2hp ZGRlbl9lbGVtJyk7YW5pbWF0aW9uKHRoaXMuc3VtbWFyeUluY2x1ZGluZykuZnJv bSgnb3BhY2l0eScsMCkudG8oJ29wYWNpdHknLDEpLmR1cmF0aW9uKDEwMCkuZ28o KTt9LmJpbmQodGhpcykpLmR1cmF0aW9uKDUwKS5nbygpO2Zvcih2YXIgYT0wO2E8 dGhpcy5jb25maXJtU3BhbnMubGVuZ3RoO2ErKylDU1MuYWRkQ2xhc3ModGhpcy5j b25maXJtU3BhbnNbYV0sJ2hpZGRlbl9lbGVtJyk7aWYodGhpcy5ncmF5T3V0KUNT Uy5yZW1vdmVDbGFzcyh0aGlzLmNvbm5lY3RCdXR0b24sJ2hpZGRlbl9lbGVtJyk7 fSxjb21wdXRlQnV0dG9uRGltZW5zaW9uczpmdW5jdGlvbigpe3ZhciBjPUNTUy5o YXNDbGFzcyh0aGlzLmNvbm5lY3RCdXR0b24sJ2hpZGRlbl9lbGVtJyk7aWYoYyl7 Q1NTLmFkZENsYXNzKHRoaXMuY29ubmVjdEJ1dHRvbiwnY29ubmVjdF93aWRnZXRf b2Zmc2NyZWVuJyk7Q1NTLnJlbW92ZUNsYXNzKHRoaXMuY29ubmVjdEJ1dHRvbiwn aGlkZGVuX2VsZW0nKTt9dmFyIGE9VmVjdG9yMi5nZXRFbGVtZW50RGltZW5zaW9u cyh0aGlzLmNvbm5lY3RCdXR0b24pO3ZhciBkPWEueDt2YXIgYj1hLnk7dmFyIGY9 cGFyc2VJbnQoQ1NTLmdldFN0eWxlKHRoaXMuY29ubmVjdEJ1dHRvbiwncGFkZGlu Z0xlZnQnKSwxMCk7dmFyIGc9cGFyc2VJbnQoQ1NTLmdldFN0eWxlKHRoaXMuY29u bmVjdEJ1dHRvbiwncGFkZGluZ1JpZ2h0JyksMTApO3ZhciBoPXBhcnNlSW50KENT Uy5nZXRTdHlsZSh0aGlzLmNvbm5lY3RCdXR0b24sJ3BhZGRpbmdUb3AnKSwxMCk7 dmFyIGU9cGFyc2VJbnQoQ1NTLmdldFN0eWxlKHRoaXMuY29ubmVjdEJ1dHRvbiwn cGFkZGluZ0JvdHRvbScpLDEwKTtpZihjKXtDU1MuYWRkQ2xhc3ModGhpcy5jb25u ZWN0QnV0dG9uLCdoaWRkZW5fZWxlbScpO0NTUy5yZW1vdmVDbGFzcyh0aGlzLmNv bm5lY3RCdXR0b24sJ2Nvbm5lY3Rfd2lkZ2V0X29mZnNjcmVlbicpO31yZXR1cm4g e3dpZHRoOmQtZi1nLTIsaGVpZ2h0OmJ9O30sY29tcHV0ZUJ1dHRvbkRpbWVuc2lv bnNXaXRoUGFkZGluZzpmdW5jdGlvbigpe3ZhciBjPUNTUy5oYXNDbGFzcyh0aGlz LmNvbm5lY3RCdXR0b24sJ2hpZGRlbl9lbGVtJyk7aWYoYyl7Q1NTLmFkZENsYXNz KHRoaXMuY29ubmVjdEJ1dHRvbiwnY29ubmVjdF93aWRnZXRfb2Zmc2NyZWVuJyk7 Q1NTLnJlbW92ZUNsYXNzKHRoaXMuY29ubmVjdEJ1dHRvbiwnaGlkZGVuX2VsZW0n KTt9dmFyIGE9VmVjdG9yMi5nZXRFbGVtZW50RGltZW5zaW9ucyh0aGlzLmNvbm5l Y3RCdXR0b24pO3ZhciBkPWEueDt2YXIgYj1hLnk7aWYodWEuaWUoKSlkKz0zO2lm KGMpe0NTUy5hZGRDbGFzcyh0aGlzLmNvbm5lY3RCdXR0b24sJ2hpZGRlbl9lbGVt Jyk7Q1NTLnJlbW92ZUNsYXNzKHRoaXMuY29ubmVjdEJ1dHRvbiwnY29ubmVjdF93 aWRnZXRfb2Zmc2NyZWVuJyk7fXJldHVybiB7d2lkdGg6ZCxoZWlnaHQ6Yn07fSxh bmltYXRlQnV0dG9uQ291bnRCdXR0b25SZWFwcGVhcmFuY2U6ZnVuY3Rpb24oKXtp Zih0aGlzLnNob3dDb25maXJtKXtmb3IodmFyIGE9MDthPHRoaXMuY29uZmlybVNw YW5zLmxlbmd0aDthKyspQ1NTLnJlbW92ZUNsYXNzKHRoaXMuY29uZmlybVNwYW5z W2FdLCdoaWRkZW5fZWxlbScpO31lbHNlIGlmKCF0aGlzLmdyYXlPdXQpe0NTUy5y ZW1vdmVDbGFzcyh0aGlzLmNvbm5lY3RCdXR0b24sJ2hpZGRlbl9lbGVtJyk7YW5p bWF0aW9uKHRoaXMuY29ubmVjdEJ1dHRvbikuZnJvbSgnd2lkdGgnLCcwcHgnKS50 bygnd2lkdGgnLHRoaXMub3JpZ2luYWxCdXR0b25XaWR0aCkuZnJvbSgnb3BhY2l0 eScsMCkudG8oJ29wYWNpdHknLDEpLmR1cmF0aW9uKDEwMCkuZ28oKTt9Q1NTLnNl dFN0eWxlKHRoaXMuc3VtbWFyeUluY2x1ZGluZywnb3BhY2l0eScsMSk7YW5pbWF0 aW9uKHRoaXMuc3VtbWFyeUluY2x1ZGluZykuZnJvbSgnb3BhY2l0eScsMSkudG8o J29wYWNpdHknLDApLmR1cmF0aW9uKDEwMCkub25kb25lKGZ1bmN0aW9uKCl7Q1NT LmFkZENsYXNzKHRoaXMuc3VtbWFyeUluY2x1ZGluZywnaGlkZGVuX2VsZW0nKTtD U1Muc2V0U3R5bGUodGhpcy5udW1iZXJFeGNsdWRpbmcsJ29wYWNpdHknLDApO0NT Uy5yZW1vdmVDbGFzcyh0aGlzLm51bWJlckV4Y2x1ZGluZywnaGlkZGVuX2VsZW0n KTthbmltYXRpb24odGhpcy5udW1iZXJFeGNsdWRpbmcpLmZyb20oJ29wYWNpdHkn LDApLnRvKCdvcGFjaXR5JywxKS5kdXJhdGlvbigxMDApLmdvKCk7fS5iaW5kKHRo aXMpKS5nbygpO30sYW5pbWF0ZVNpbXBsZUJ1dHRvblJlYXBwZWFyYW5jZTpmdW5j dGlvbigpe2lmKHRoaXMuc2hvd0NvbmZpcm0pe2Zvcih2YXIgYT0wO2E8dGhpcy5j b25maXJtU3BhbnMubGVuZ3RoO2ErKylDU1MucmVtb3ZlQ2xhc3ModGhpcy5jb25m aXJtU3BhbnNbYV0sJ2hpZGRlbl9lbGVtJyk7fWVsc2V7Q1NTLnJlbW92ZUNsYXNz KHRoaXMuY29ubmVjdEJ1dHRvbiwnaGlkZGVuX2VsZW0nKTthbmltYXRpb24odGhp cy5jb25uZWN0QnV0dG9uKS5mcm9tKCd3aWR0aCcsJzBweCcpLnRvKCd3aWR0aCcs dGhpcy5vcmlnaW5hbEJ1dHRvbldpZHRoKS5mcm9tKCdvcGFjaXR5JywwKS50bygn b3BhY2l0eScsMSkuZHVyYXRpb24oMTAwKS5nbygpO31DU1Muc2V0U3R5bGUodGhp cy5zdW1tYXJ5SW5jbHVkaW5nLCdvcGFjaXR5JywxKTthbmltYXRpb24odGhpcy5z dW1tYXJ5SW5jbHVkaW5nKS5mcm9tKCdvcGFjaXR5JywxKS50bygnb3BhY2l0eScs MCkuZHVyYXRpb24oMTAwKS5vbmRvbmUoZnVuY3Rpb24oKXtDU1MuYWRkQ2xhc3Mo dGhpcy5zdW1tYXJ5SW5jbHVkaW5nLCdoaWRkZW5fZWxlbScpO30uYmluZCh0aGlz KSkuZ28oKTt9LGluamVjdENvbW1lbnRXaWRnZXRNYXJrdXA6ZnVuY3Rpb24oYSl7 dGhpcy5jb21tZW50RG9jdW1lbnQ9YTt0aGlzLmNvbW1lbnREb2N1bWVudC5ib2R5 LmlubmVySFRNTD10aGlzLmNvbW1lbnRXaWRnZXRNYXJrdXA7dGhpcy50cmFuc2Zl ckNTU1N0eWxlcygpO2lmKHRoaXMubmV3UHJvZmlsZVBpYyl7dmFyIGM9RE9NLmZp bmQodGhpcy5jb21tZW50RG9jdW1lbnQsJ2ltZy5jb25uZWN0X2NvbW1lbnRfd2lk Z2V0X3VzZXJfcGljJyk7Yy5zcmM9dGhpcy5uZXdQcm9maWxlUGljO2RlbGV0ZSB0 aGlzLm5ld1Byb2ZpbGVQaWM7fWlmKHVhLmllKCkpe3ZhciBmPURPTS5zY3J5KHRo aXMuY29tbWVudERvY3VtZW50LCcuY29ubmVjdF9jb21tZW50X3NoYXJlX3ByZXZp ZXdfcGljJyk7aWYoZi5sZW5ndGg+MCl7Zj1mWzBdO3ZhciBlPTUwO3ZhciBkPVZl Y3RvcjIuZ2V0RWxlbWVudERpbWVuc2lvbnMoZik7dmFyIGc9ZS9kLng7aWYoZzwx KXtDU1Muc2V0U3R5bGUoZiwnd2lkdGgnLGUpO0NTUy5zZXRTdHlsZShmLCdoZWln aHQnLGQueSpnKTt9fX10aGlzLnNldHVwQ29tbWVudEhvb2tzKHRoaXMuY29tbWVu dERvY3VtZW50KTt0aGlzLmNvbW1lbnRXaWRnZXRJc0V4cGFuZGVkPSF0aGlzLmlu bGluZVVubGlrZUxpbms7dmFyIGI9dGhpcy5nZXRDb21tZW50QWN0aXZhdGluZ0Nv bXBvbmVudCgpO2Iub25tb3VzZW91dD10aGlzLmhpZGVDb21tZW50V2lkZ2V0LmJp bmQodGhpcyk7Yi5vbm1vdXNlb3Zlcj10aGlzLnNob3dDb21tZW50V2lkZ2V0LmJp bmQodGhpcyk7dGhpcy5jb21tZW50RG9jdW1lbnQuYm9keS5vbm1vdXNlb3V0PXRo aXMuaGlkZUNvbW1lbnRXaWRnZXQuYmluZCh0aGlzKTt0aGlzLmNvbW1lbnREb2N1 bWVudC5ib2R5Lm9ubW91c2VvdmVyPXRoaXMuc2hvd0NvbW1lbnRXaWRnZXQuYmlu ZCh0aGlzKTt0aGlzLmluR3JhY2VQZXJpb2Q9ZmFsc2U7fSxzZXR1cENvbW1lbnRI b29rczpmdW5jdGlvbihhKXt0aGlzLnBsYWNlaG9sZGVySW5wdXRSZWdpb249RE9N LmZpbmQoYSwnZGl2LmNvbm5lY3RfY29tbWVudF93aWRnZXRfcGxhY2Vob2xkZXJf aW5wdXRfcmVnaW9uJyk7dGhpcy5wbGFjZWhvbGRlcklucHV0PURPTS5maW5kKHRo aXMucGxhY2Vob2xkZXJJbnB1dFJlZ2lvbiwnaW5wdXQuY29ubmVjdF9jb21tZW50 X3dpZGdldF9wbGFjZWhvbGRlcl9pbnB1dCcpO3RoaXMuZnVsbElucHV0UmVnaW9u PURPTS5maW5kKGEsJ2Rpdi5jb25uZWN0X2NvbW1lbnRfd2lkZ2V0X2Z1bGxfaW5w dXRfcmVnaW9uJyk7dGhpcy5mdWxsSW5wdXRUZXh0YXJlYT1ET00uZmluZCh0aGlz LmZ1bGxJbnB1dFJlZ2lvbiwndGV4dGFyZWEuY29ubmVjdF9jb21tZW50X3dpZGdl dF9mdWxsX2lucHV0X3RleHRhcmVhJyk7dGhpcy53aWRnZXRCdXR0b25SZWdpb249 RE9NLmZpbmQoYSwnZGl2LmNvbm5lY3RfY29tbWVudF93aWRnZXRfYnV0dG9uX3Jl Z2lvbicpO3RoaXMucG9zdFRvRmFjZWJvb2tCdXR0b249RE9NLmZpbmQodGhpcy53 aWRnZXRCdXR0b25SZWdpb24sJy5jb25uZWN0X2NvbW1lbnRfd2lkZ2V0X3Bvc3Rf YnV0dG9uIGlucHV0Jyk7dGhpcy5pbmxpbmVVbmxpa2VMaW5rPURPTS5zY3J5KGEs J2EuY29ubmVjdF9jb21tZW50X3dpZGdldF91bmxpa2VfbGluaycpO2lmKHRoaXMu aW5saW5lVW5saWtlTGluay5sZW5ndGg+MCl0aGlzLmlubGluZVVubGlrZUxpbms9 dGhpcy5pbmxpbmVVbmxpa2VMaW5rWzBdO3RoaXMuZGVmYXVsdElucHV0VGV4dD10 aGlzLnBsYWNlaG9sZGVySW5wdXQudmFsdWU7dGhpcy5wbGFjZWhvbGRlcklucHV0 Lm9uZm9jdXM9dGhpcy50cmFuc2l0aW9uVG9GdWxsSW5wdXRNb2RlLmJpbmQodGhp cyk7dGhpcy5mdWxsSW5wdXRUZXh0YXJlYS5vbmZvY3VzPXRoaXMucmVtb3ZlUGxh Y2Vob2xkZXJUZXh0LmJpbmQodGhpcyk7dGhpcy5mdWxsSW5wdXRUZXh0YXJlYS5v bmJsdXI9dGhpcy5yZXN0b3JlUGxhY2Vob2xkZXJUZXh0LmJpbmQodGhpcyk7dGhp cy5wb3N0VG9GYWNlYm9va0J1dHRvbi5vbmNsaWNrPXRoaXMudXBkYXRlVXNlckNv bW1lbnQuYmluZCh0aGlzKTtpZih0aGlzLmlubGluZVVubGlrZUxpbmspdGhpcy5p bmxpbmVVbmxpa2VMaW5rLm9uY2xpY2s9dGhpcy5jb25uZWN0VG9Ob2RlT25DbGlj ay5iaW5kKHRoaXMpO30sZ2V0Q29tbWVudEFjdGl2YXRpbmdDb21wb25lbnQ6ZnVu Y3Rpb24oKXtpZih0aGlzLmxheW91dD09PUV4dGVybmFsTm9kZUNvbm5lY3RXaWRn ZXQuQk9YX0NPVU5UX0xBWU9VVHx8dGhpcy5sYXlvdXQ9PT1FeHRlcm5hbE5vZGVD b25uZWN0V2lkZ2V0LkJVVFRPTl9DT1VOVF9MQVlPVVQpe3JldHVybiB0aGlzLndp ZGdldDt9ZWxzZSBpZih0aGlzLmxheW91dD09PUV4dGVybmFsTm9kZUNvbm5lY3RX aWRnZXQuU0lNUExFX0xBWU9VVCl7cmV0dXJuIHRoaXMud2lkZ2V0O31lbHNlIGlm KHRoaXMuZ3JheU91dCl7cmV0dXJuIERPTS5maW5kKHRoaXMud2lkZ2V0LCd0YWJs ZS5jb25uZWN0X3dpZGdldF9pbnRlcmFjdGl2ZV9hcmVhJyk7fWVsc2UgcmV0dXJu IHRoaXMuY29uZmlybWF0aW9uQ2VsbDt9LHNob3dDb21tZW50V2lkZ2V0OmZ1bmN0 aW9uKGV2ZW50KXtpZih0aGlzLm90aGVyQ29tbWVudFdpZGdldE9wZW4pcmV0dXJu IGZhbHNlO3RoaXMuaW5HcmFjZVBlcmlvZD10cnVlO3RoaXMua2lsbENsb3NlVGhy ZWFkKCk7aWYodGhpcy5jb21tZW50V2lkZ2V0T3BlbiYmIXRoaXMuY29tbWVudFdp ZGdldFZpc2libGUpe3RoaXMuY29tbWVudFdpZGdldFZpc2libGU9dHJ1ZTtDU1Mu c2hvdyh0aGlzLmNvbW1lbnREb2N1bWVudC5ib2R5KTtVbnZlcmlmaWVkWEQuc2Vu ZCh7dHlwZTonc2hvd0VkZ2VDb21tZW50RGlhbG9nJ30pO31yZXR1cm4gZmFsc2U7 fSxoaWRlQ29tbWVudFdpZGdldDpmdW5jdGlvbihldmVudCl7aWYodGhpcy5vdGhl ckNvbW1lbnRXaWRnZXRPcGVuKXJldHVybiBmYWxzZTt0aGlzLmluR3JhY2VQZXJp b2Q9ZmFsc2U7aWYodGhpcy5jb21tZW50V2lkZ2V0T3BlbiYmdGhpcy5jb21tZW50 V2lkZ2V0VmlzaWJsZSl7dmFyIGE9ZnVuY3Rpb24oKXtpZighdGhpcy5pbkdyYWNl UGVyaW9kJiZ0aGlzLnNob3VsZEhpZGVFeHBhbmRlZFdpZGdldCgpKXt0aGlzLmZ1 bGxJbnB1dFRleHRhcmVhLmJsdXIoKTt0aGlzLmNvbW1lbnRXaWRnZXRWaXNpYmxl PWZhbHNlO2lmKCF0aGlzLnNvY2lhbEJhcilDU1MuaGlkZSh0aGlzLmNvbW1lbnRE b2N1bWVudC5ib2R5KTtVbnZlcmlmaWVkWEQuc2VuZCh7dHlwZTonaGlkZUVkZ2VD b21tZW50RGlhbG9nJ30pO310aGlzLmluR3JhY2VQZXJpb2Q9ZmFsc2U7dGhpcy5r aWxsQ2xvc2VUaHJlYWQoKTt9LmJpbmQodGhpcyk7dGhpcy5jbG9zZVRocmVhZElE PXNldFRpbWVvdXQoYSwxMDApO31yZXR1cm4gZmFsc2U7fSxzaG91bGRIaWRlRXhw YW5kZWRXaWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gIXRoaXMuY29tbWVudFdpZGdl dElzRXhwYW5kZWR8fHRoaXMuZnVsbElucHV0VGV4dGFyZWEudmFsdWU9PT0nJ3x8 dGhpcy5mdWxsSW5wdXRUZXh0YXJlYS52YWx1ZT09PXRoaXMuZGVmYXVsdElucHV0 VGV4dDt9LGtpbGxDbG9zZVRocmVhZDpmdW5jdGlvbigpe2lmKHRoaXMuY2xvc2VU aHJlYWRJRCl7Y2xlYXJUaW1lb3V0KHRoaXMuY2xvc2VUaHJlYWRJRCk7ZGVsZXRl IHRoaXMuY2xvc2VUaHJlYWRJRDt9fSx0cmFuc2ZlckNTU1N0eWxlczpmdW5jdGlv bigpe3ZhciBkPURPTS5zY3J5KHdpbmRvdy5kb2N1bWVudCwnbGluaycpO3ZhciBl PURPTS5zY3J5KHdpbmRvdy5kb2N1bWVudCwnc3R5bGUnKTt2YXIgYz1ET00uZmlu ZCh3aW5kb3cuZG9jdW1lbnQsJ2h0bWwnKTt2YXIgZz1ET00uZmluZCh0aGlzLmNv bW1lbnREb2N1bWVudCwnaHRtbCcpO3ZhciBmPURPTS5maW5kKHRoaXMuY29tbWVu dERvY3VtZW50LCdoZWFkJyk7Zm9yKHZhciBhPTA7YTxkLmxlbmd0aDthKyspaWYo ZFthXS5yZWw9PSdzdHlsZXNoZWV0Jyl7dmFyIGI9dGhpcy5jb21tZW50RG9jdW1l bnQuY3JlYXRlRWxlbWVudCgnbGluaycpO2IucmVsPWRbYV0ucmVsO2IuaHJlZj1k W2FdLmhyZWY7Yi50eXBlPWRbYV0udHlwZTtmLmFwcGVuZENoaWxkKGIpO31pZih3 aW5kb3cuUmVzb3VyY2VCdW5kbGVyKVJlc291cmNlQnVuZGxlci5hcHBseUNTU1Rv RG9jdW1lbnQodGhpcy5jb21tZW50RG9jdW1lbnQpO2cuaWQ9Yy5pZDtnLmNsYXNz TmFtZT1jLmNsYXNzTmFtZTt0aGlzLmNvbW1lbnREb2N1bWVudC5ib2R5LmNsYXNz TmFtZT13aW5kb3cuZG9jdW1lbnQuYm9keS5jbGFzc05hbWU7fSx0cmFuc2l0aW9u VG9GdWxsSW5wdXRNb2RlOmZ1bmN0aW9uKGV2ZW50KXt0aGlzLmNvbW1lbnRXaWRn ZXRJc0V4cGFuZGVkPXRydWU7Q1NTLmhpZGUodGhpcy5wbGFjZWhvbGRlcklucHV0 UmVnaW9uKTtDU1Muc2hvdyh0aGlzLmZ1bGxJbnB1dFJlZ2lvbik7Q1NTLnNob3co dGhpcy53aWRnZXRCdXR0b25SZWdpb24pO3RoaXMuZnVsbElucHV0VGV4dGFyZWEu Zm9jdXMoKTtyZXR1cm4gZmFsc2U7fSxyZW1vdmVQbGFjZWhvbGRlclRleHQ6ZnVu Y3Rpb24oZXZlbnQpe2lmKENTUy5oYXNDbGFzcyh0aGlzLmZ1bGxJbnB1dFRleHRh cmVhLCdjb25uZWN0X2NvbW1lbnRfd2lkZ2V0X2Rpc2FibGVkJykpe0NTUy5yZW1v dmVDbGFzcyh0aGlzLmZ1bGxJbnB1dFRleHRhcmVhLCdjb25uZWN0X2NvbW1lbnRf d2lkZ2V0X2Rpc2FibGVkJyk7dGhpcy5mdWxsSW5wdXRUZXh0YXJlYS52YWx1ZT0n Jzt9cmV0dXJuIGZhbHNlO30scmVzdG9yZVBsYWNlaG9sZGVyVGV4dDpmdW5jdGlv bihldmVudCl7aWYodGhpcy5mdWxsSW5wdXRUZXh0YXJlYS52YWx1ZS50cmltKCk9 PScnKXt0aGlzLmZ1bGxJbnB1dFRleHRhcmVhLnZhbHVlPXRoaXMuZGVmYXVsdElu cHV0VGV4dDtDU1MuYWRkQ2xhc3ModGhpcy5mdWxsSW5wdXRUZXh0YXJlYSwnY29u bmVjdF9jb21tZW50X3dpZGdldF9kaXNhYmxlZCcpO31yZXR1cm4gZmFsc2U7fSx1 cGRhdGVVc2VyQ29tbWVudDpmdW5jdGlvbihldmVudCl7dmFyIGE9dGhpcy5mdWxs SW5wdXRUZXh0YXJlYS52YWx1ZS50cmltKCk7aWYoYSE9JycmJmEhPXRoaXMuZGVm YXVsdElucHV0VGV4dCl0aGlzLnBvc3RVc2VyQ29tbWVudChhKTtyZXR1cm4gZmFs c2U7fSxkaXNtaXNzQ29tbWVudFdpZGdldDpmdW5jdGlvbihldmVudCl7dGhpcy5j bG9zZUNvbW1lbnRXaWRnZXQoKTtyZXR1cm4gZmFsc2U7fSxnZXRBamF4RW5kcG9p bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gJy9hamF4L2Nvbm5lY3QvZXh0ZXJuYWxfbm9k ZV9jb25uZWN0LnBocCc7fSxnZXRDb21tZW50QWpheEVuZHBvaW50OmZ1bmN0aW9u KCl7cmV0dXJuICcvYWpheC9jb25uZWN0L2V4dGVybmFsX2VkZ2VfY29tbWVudC5w aHAnO30sZ2V0Q29uZmlybVVSTDpmdW5jdGlvbigpe3ZhciBhPXtocmVmOnRoaXMu ZXh0ZXJuYWxVcmwscGFnZV9pZDp0aGlzLnBhZ2VJZCxub2RlX3R5cGU6dGhpcy5u b2RlVHlwZSxlZGdlX3R5cGU6dGhpcy5lZGdlVHlwZSx3aWRnZXRfaWQ6dGhpcy53 aWRnZXRJRH07aWYodGhpcy5yZWYpYS5yZWY9dGhpcy5yZWY7cmV0dXJuIFVSSSgn L3BsdWdpbnMvbGlrZV9jb25maXJtLnBocCcpLmFkZFF1ZXJ5RGF0YShhKS50b1N0 cmluZygpO30sdXBkYXRlTG9nZ2VkSW5Vc2VyOmZ1bmN0aW9uKGIsYSl7RXh0ZXJu YWxOb2RlQ29ubmVjdFdpZGdldC51cGRhdGVMb2dnZWRJblVzZXIoYixhKTt9LHN5 bmNTZW5kV2lkZ2V0V2lkdGg6ZnVuY3Rpb24oaSxiKXt2YXIgYT10aGlzLmNvbXB1 dGVCdXR0b25EaW1lbnNpb25zV2l0aFBhZGRpbmcoKS53aWR0aDt2YXIgYz1iLmJ1 dHRvbl93aWR0aC1hO2lmKHRoaXMubGF5b3V0PT09RXh0ZXJuYWxOb2RlQ29ubmVj dFdpZGdldC5CT1hfQ09VTlRfTEFZT1VUJiZjPjAmJmM8PTUpe0NTUy5zZXRTdHls ZSh0aGlzLmNvbm5lY3RCdXR0b24sJ3dpZHRoJywoYi5idXR0b25fd2lkdGgtcGFy c2VJbnQoQ1NTLmdldFN0eWxlKHRoaXMuY29ubmVjdEJ1dHRvbiwncGFkZGluZ0xl ZnQnKSktcGFyc2VJbnQoQ1NTLmdldFN0eWxlKHRoaXMuY29ubmVjdEJ1dHRvbiwn cGFkZGluZ1JpZ2h0JykpLXBhcnNlSW50KENTUy5nZXRTdHlsZSh0aGlzLmNvbm5l Y3RCdXR0b24sJ2JvcmRlckxlZnRXaWR0aCcpKS1wYXJzZUludChDU1MuZ2V0U3R5 bGUodGhpcy5jb25uZWN0QnV0dG9uLCdib3JkZXJSaWdodFdpZHRoJykpKSsncHgn KTt0aGlzLnNpemVOdW1iZXJDbG91ZCgpO31pZih0aGlzLmxheW91dD09PUV4dGVy bmFsTm9kZUNvbm5lY3RXaWRnZXQuU1RBTkRBUkRfTEFZT1VUKXt2YXIgZD1WZWN0 b3IyLmdldEVsZW1lbnREaW1lbnNpb25zKHRoaXMud2lkZ2V0KS55O0NTUy5zZXRT dHlsZSh0aGlzLndpZGdldCwnaGVpZ2h0JywoZCs1KSsncHgnKTt2YXIgZT11YS5m aXJlZm94KCk7dmFyIGY9dWEuaWUoKTt2YXIgZz1pbnRsX2xvY2FsZV9pc19ydGwo KTt2YXIgaD1nPydyaWdodCc6J2xlZnQnO2lmKGYmJmY8OSl7Q1NTLnNldFN0eWxl KHRoaXMuY29ubmVjdEJ1dHRvbiwncG9zaXRpb24nLCdhYnNvbHV0ZScpO0NTUy5z ZXRTdHlsZSh0aGlzLmNvbm5lY3RCdXR0b24saCwtKGIuYnV0dG9uX3dpZHRoKzEw KSsncHgnKTt9ZWxzZXtDU1Muc2V0U3R5bGUodGhpcy5jb25uZWN0QnV0dG9uLCdw b3NpdGlvbicsJ2ZpeGVkJyk7Q1NTLnNldFN0eWxlKHRoaXMuY29ubmVjdEJ1dHRv bixoLCcwcHgnKTt9aWYoZiYmdGhpcy5jb25uZWN0QnV0dG9uU2xpZGVyKXtDU1Mu c2V0U3R5bGUodGhpcy5jb25uZWN0QnV0dG9uU2xpZGVyLGgsYi5idXR0b25fd2lk dGgrJ3B4Jyk7aWYoZjw9Nyl0aGlzLmZpeElFQnV0dG9uRG91YmxlTGluZUJ1Zygp O31DU1Muc2V0U3R5bGUodGhpcy5jb25maXJtYXRpb25DZWxsLCdwb3NpdGlvbics J2Fic29sdXRlJyk7Q1NTLnNldFN0eWxlKHRoaXMuY29uZmlybWF0aW9uQ2VsbCxo LChiLmJ1dHRvbl93aWR0aCthKzUpKydweCcpO0NTUy5zZXRTdHlsZSh0aGlzLmNv bmZpcm1hdGlvbkNlbGwsJ3RvcCcsJzVweCcpO2lmKHRoaXMuc2FtcGxlQ29ubmVj dGlvbnMpe0NTUy5zZXRTdHlsZSh0aGlzLnNhbXBsZUNvbm5lY3Rpb25zLCdwb3Np dGlvbicsJ2ZpeGVkJyk7Q1NTLnNldFN0eWxlKHRoaXMuc2FtcGxlQ29ubmVjdGlv bnMsaCwnMCcpO310aGlzLmludmVydGVkQnV0dG9ucz10cnVlO3RoaXMucmVwb3Np dGlvbkZhY2VwaWxlVmVydGljYWxseSgpO319LHJlcG9zaXRpb25GYWNlcGlsZVZl cnRpY2FsbHk6ZnVuY3Rpb24oKXtpZih0aGlzLmludmVydGVkQnV0dG9ucyYmdGhp cy5zYW1wbGVDb25uZWN0aW9ucyl7dmFyIGE9VmVjdG9yMi5nZXRFbGVtZW50RGlt ZW5zaW9ucyh0aGlzLnN1bW1hcnlUZXh0KS55O0NTUy5zZXRTdHlsZSh0aGlzLnNh bXBsZUNvbm5lY3Rpb25zLCdtYXJnaW4tdG9wJywoNSthKzUpKydweCcpO319fSk7 CnZhciBFeHRlcm5hbFBhZ2VMaWtlV2lkZ2V0PWZ1bmN0aW9uKGEpe2EuZWRnZVR5 cGU9J2xpa2UnO3RoaXMucGFyZW50LmNvbnN0cnVjdCh0aGlzLGEpO3RoaXMudW5h Y3Rpb25MaW5rPURPTS5zY3J5KHRoaXMud2lkZ2V0LCdzcGFuLnVubGlrZV9saW5r JylbMF07aWYodGhpcy51bmFjdGlvbkxpbmspRXZlbnQubGlzdGVuKHRoaXMudW5h Y3Rpb25MaW5rLCdjbGljaycsdGhpcy5jb25uZWN0VG9Ob2RlT25DbGljay5iaW5k KHRoaXMpKTt0aGlzLmhhc1Nob3dlZEluc2lnaHRzPWZhbHNlO3RoaXMuc2hvd0lu c2lnaHRzKCk7fTtFeHRlcm5hbFBhZ2VMaWtlV2lkZ2V0LmV4dGVuZCgnRXh0ZXJu YWxOb2RlQ29ubmVjdFdpZGdldCcpO2NvcHlfcHJvcGVydGllcyhFeHRlcm5hbFBh Z2VMaWtlV2lkZ2V0LnByb3RvdHlwZSx7Z2V0U3luY0VuZHBvaW50TmFtZTpmdW5j dGlvbigpe3JldHVybiAncGxhdGZvcm0vbGlrZS9zeW5jJzt9LGdldENvbm5lY3Rp b25FbmRwb2ludE5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gJ3BsYXRmb3JtL2xpa2Uv Y29ubmVjdGlvbic7fSxnZXRQbHVnaW5OYW1lOmZ1bmN0aW9uKCl7cmV0dXJuICds aWtlJzt9LHByZXNlbnRJbnNpZ2h0c1BhZ2U6ZnVuY3Rpb24oKXt2YXIgYT10aGlz LmFkbWluVXJsLnNwbGl0KCcvJyk7dmFyIGI9YVthLmxlbmd0aC0xXTt3aW5kb3cu b3BlbignL2luc2lnaHRzLz9zaz1wb18nK2IsJ19ibGFuaycpO30sc2hvd0luc2ln aHRzOmZ1bmN0aW9uKCl7aWYodGhpcy5oYXNTaG93ZWRJbnNpZ2h0cylyZXR1cm47 dmFyIGI9RE9NLnNjcnkodGhpcy53aWRnZXQsJ2EuY29ubmVjdF93aWRnZXRfaW5z aWdodHNfbGluaycpO2lmKGIpZm9yKHZhciBhPTA7YTxiLmxlbmd0aDthKyspe0NT Uy5zaG93KGJbYV0ucGFyZW50Tm9kZSk7RXZlbnQubGlzdGVuKGJbYV0sJ2NsaWNr Jyx0aGlzLnByZXNlbnRJbnNpZ2h0c1BhZ2UuYmluZCh0aGlzKSk7fXRoaXMuaGFz U2hvd2VkSW5zaWdodHM9dHJ1ZTt9LHJlcG9zaXRpb25GYWNlcGlsZVZlcnRpY2Fs bHk6ZnVuY3Rpb24oKXt0aGlzLnNob3dJbnNpZ2h0cygpO3RoaXMucGFyZW50LnJl cG9zaXRpb25GYWNlcGlsZVZlcnRpY2FsbHkoKTt9fSk7CmZ1bmN0aW9uIEtleUV2 ZW50Q29udHJvbGxlcigpe3RoaXMuaGFuZGxlcnM9e307ZG9jdW1lbnQub25rZXl1 cD10aGlzLm9ua2V5ZXZlbnQuYmluZCh0aGlzLCdvbmtleXVwJyk7ZG9jdW1lbnQu b25rZXlkb3duPXRoaXMub25rZXlldmVudC5iaW5kKHRoaXMsJ29ua2V5ZG93bicp O2RvY3VtZW50Lm9ua2V5cHJlc3M9dGhpcy5vbmtleWV2ZW50LmJpbmQodGhpcywn b25rZXlwcmVzcycpO31jb3B5X3Byb3BlcnRpZXMoS2V5RXZlbnRDb250cm9sbGVy LHtpbnN0YW5jZTpudWxsLGdldEluc3RhbmNlOmZ1bmN0aW9uKCl7cmV0dXJuIEtl eUV2ZW50Q29udHJvbGxlci5pbnN0YW5jZXx8KEtleUV2ZW50Q29udHJvbGxlci5p bnN0YW5jZT1uZXcgS2V5RXZlbnRDb250cm9sbGVyKCkpO30sZGVmYXVsdEZpbHRl cjpmdW5jdGlvbihldmVudCxhKXtldmVudD0kRShldmVudCk7cmV0dXJuIEtleUV2 ZW50Q29udHJvbGxlci5maWx0ZXJFdmVudFR5cGVzKGV2ZW50LGEpJiZLZXlFdmVu dENvbnRyb2xsZXIuZmlsdGVyRXZlbnRUYXJnZXRzKGV2ZW50LGEpJiZLZXlFdmVu dENvbnRyb2xsZXIuZmlsdGVyRXZlbnRNb2RpZmllcnMoZXZlbnQsYSk7fSxmaWx0 ZXJFdmVudFR5cGVzOmZ1bmN0aW9uKGV2ZW50LGEpe2lmKGE9PT0nb25rZXlkb3du JylyZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2U7fSxmaWx0ZXJFdmVudFRhcmdldHM6 ZnVuY3Rpb24oZXZlbnQsYil7dmFyIGE9ZXZlbnQuZ2V0VGFyZ2V0KCk7cmV0dXJu ICFET00uaXNOb2RlKGEsS2V5RXZlbnRDb250cm9sbGVyLl9pbnRlcmFjdGl2ZUVs ZW1lbnRzKXx8KGEudHlwZSBpbiBLZXlFdmVudENvbnRyb2xsZXIuX3VuaW50ZXJl c3RpbmdUeXBlcyl8fChET00uaXNOb2RlKGEsWydpbnB1dCcsJ3RleHRhcmVhJ10p JiZhLnZhbHVlLmxlbmd0aD09PTAmJmV2ZW50LmtleUNvZGUgaW4gS2V5RXZlbnRD b250cm9sbGVyLl9jb250cm9sS2V5cyk7fSxmaWx0ZXJFdmVudE1vZGlmaWVyczpm dW5jdGlvbihldmVudCxhKXtpZihldmVudC5jdHJsS2V5fHxldmVudC5hbHRLZXl8 fGV2ZW50Lm1ldGFLZXl8fGV2ZW50LnJlcGVhdClyZXR1cm4gZmFsc2U7cmV0dXJu IHRydWU7fSxyZWdpc3RlcktleTpmdW5jdGlvbihmLGEsZCxnKXtpZihkPT09dW5k ZWZpbmVkKWQ9S2V5RXZlbnRDb250cm9sbGVyLmRlZmF1bHRGaWx0ZXI7dmFyIGI9 S2V5RXZlbnRDb250cm9sbGVyLmdldEluc3RhbmNlKCk7dmFyIGM9Yi5tYXBLZXko Zik7aWYoaXNfZW1wdHkoYi5oYW5kbGVycykpb25sZWF2ZVJlZ2lzdGVyKGIucmVz ZXRIYW5kbGVycy5iaW5kKGIpKTtmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKyl7 Zj1jW2VdO2lmKCFiLmhhbmRsZXJzW2ZdfHxnKWIuaGFuZGxlcnNbZl09W107Yi5o YW5kbGVyc1tmXS5wdXNoKHtjYWxsYmFjazphLGZpbHRlcjpkfSk7fX0sa2V5Q29k ZU1hcDp7QkFDS1NQQUNFOls4XSxUQUI6WzldLFJFVFVSTjpbMTNdLEVTQ0FQRTpb MjddLExFRlQ6WzM3LDYzMjM0XSxVUDpbMzgsNjMyMzJdLFJJR0hUOlszOSw2MzIz NV0sRE9XTjpbNDAsNjMyMzNdLERFTEVURTpbNDZdLENPTU1BOlsxODhdLFBFUklP RDpbMTkwXSwnYCc6WzE5Ml0sJ1snOlsyMTldLCddJzpbMjIxXX0sX2ludGVyYWN0 aXZlRWxlbWVudHM6WydpbnB1dCcsJ3NlbGVjdCcsJ3RleHRhcmVhJywnb2JqZWN0 JywnZW1iZWQnXSxfdW5pbnRlcmVzdGluZ1R5cGVzOntjaGVja2JveDoxLHJhZGlv OjEsc3VibWl0OjF9LF9jb250cm9sS2V5czp7ODoxLDk6MSwxMzoxLDI3OjEsMzc6 MSw2MzIzNDoxLDM4OjEsNjMyMzI6MSwzOToxLDYzMjM1OjEsNDA6MSw2MzIzMzox LDQ2OjF9fSk7Y29weV9wcm9wZXJ0aWVzKEtleUV2ZW50Q29udHJvbGxlci5wcm90 b3R5cGUse21hcEtleTpmdW5jdGlvbihhKXtpZih0eXBlb2YoYSk9PSdudW1iZXIn KXJldHVybiBbNDgrYSw5NithXTt2YXIgYj1LZXlFdmVudENvbnRyb2xsZXIua2V5 Q29kZU1hcFthLnRvVXBwZXJDYXNlKCldO2lmKGIpcmV0dXJuIGI7cmV0dXJuIFth LnRvVXBwZXJDYXNlKCkuY2hhckNvZGVBdCgwKV07fSxvbmtleWV2ZW50OmZ1bmN0 aW9uKGksYyl7Yz0kRShjKTt2YXIgZD1udWxsO3ZhciBnPXRoaXMuaGFuZGxlcnNb Yy5rZXlDb2RlXTt2YXIgYixmLGE7aWYoZylmb3IodmFyIGg9MDtoPGcubGVuZ3Ro O2grKyl7Yj1nW2hdLmNhbGxiYWNrO2Y9Z1toXS5maWx0ZXI7dHJ5e2lmKCFmfHxm KGMsaSkpe3ZhciBub2RlPW51bGw7aWYod2luZG93LlBhcmVudCYmUGFyZW50LmJ5 VGFnJiZjLmdldFRhcmdldClub2RlPVBhcmVudC5ieVRhZyhjLmdldFRhcmdldCgp LCdhJyk7dXNlcl9hY3Rpb24obm9kZSwna2V5JyxjKTthPWIoYyxpKTtpZihhPT09 ZmFsc2UpcmV0dXJuIEV2ZW50LmtpbGwoYyk7fX1jYXRjaChlKXt9fXJldHVybiB0 cnVlO30scmVzZXRIYW5kbGVyczpmdW5jdGlvbigpe3RoaXMuaGFuZGxlcnM9e307 fX0pOwpmdW5jdGlvbiBET01Db250cm9sKGEpe3RoaXMucm9vdD0kKGEpO3RoaXMu dXBkYXRpbmc9ZmFsc2U7RGF0YVN0b3JlLnNldChhLCdET01Db250cm9sJyx0aGlz KTt9RE9NQ29udHJvbC5wcm90b3R5cGU9e2dldFJvb3Q6ZnVuY3Rpb24oKXtyZXR1 cm4gdGhpcy5yb290O30sYmVnaW5VcGRhdGU6ZnVuY3Rpb24oKXtpZih0aGlzLnVw ZGF0aW5nKXJldHVybiBmYWxzZTt0aGlzLnVwZGF0aW5nPXRydWU7cmV0dXJuIHRy dWU7fSxlbmRVcGRhdGU6ZnVuY3Rpb24oKXt0aGlzLnVwZGF0aW5nPWZhbHNlO30s dXBkYXRlOmZ1bmN0aW9uKGEpe2lmKCF0aGlzLmJlZ2luVXBkYXRlKCkpcmV0dXJu IHRoaXM7dGhpcy5vbnVwZGF0ZShhKTt0aGlzLmVuZFVwZGF0ZSgpO319O0RPTUNv bnRyb2wuZ2V0SW5zdGFuY2U9ZnVuY3Rpb24oYSl7cmV0dXJuIERhdGFTdG9yZS5n ZXQoYSwnRE9NQ29udHJvbCcpO307CmFkZF9wcm9wZXJ0aWVzKCdDU1MnLHtzdXBw b3J0c0JvcmRlclJhZGl1czpmdW5jdGlvbigpe3ZhciBjPVsnS2h0bWxCb3JkZXJS YWRpdXMnLCdPQm9yZGVyUmFkaXVzJywnTW96Qm9yZGVyUmFkaXVzJywnV2Via2l0 Qm9yZGVyUmFkaXVzJywnbXNCb3JkZXJSYWRpdXMnLCdib3JkZXJSYWRpdXMnXTt2 YXIgZD1mYWxzZSxhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2Zvcih2 YXIgYj1jLmxlbmd0aDtiPj0wO2ItLSlpZihkPWEuc3R5bGVbY1tiXV0hPT11bmRl ZmluZWQpYnJlYWs7Q1NTLnN1cHBvcnRzQm9yZGVyUmFkaXVzPWJhZ29mKGQpO3Jl dHVybiBkO319KTsKYWRkX3Byb3BlcnRpZXMoJ0lucHV0Jyx7Zm9jdXM6ZnVuY3Rp b24oYSl7dHJ5e2EuZm9jdXMoKTt9Y2F0Y2goYil7fX0saXNFbXB0eTpmdW5jdGlv bihhKXtyZXR1cm4gISgvXFMvKS50ZXN0KGEudmFsdWV8fCcnKXx8Q1NTLmhhc0Ns YXNzKGEsJ0RPTUNvbnRyb2xfcGxhY2Vob2xkZXInKTt9LGdldFZhbHVlOmZ1bmN0 aW9uKGEpe3JldHVybiBJbnB1dC5pc0VtcHR5KGEpPycnOmEudmFsdWU7fSxzZXRW YWx1ZTpmdW5jdGlvbihiLGMpe0NTUy5yZW1vdmVDbGFzcyhiLCdET01Db250cm9s X3BsYWNlaG9sZGVyJyk7Yi52YWx1ZT1jO3ZhciBhPURPTUNvbnRyb2wuZ2V0SW5z dGFuY2UoYik7YSYmYS5yZXNldEhlaWdodCYmYS5yZXNldEhlaWdodCgpO30sc2V0 UGxhY2Vob2xkZXI6ZnVuY3Rpb24oYSxiKXthLnNldEF0dHJpYnV0ZSgndGl0bGUn LGIpO2Euc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsYik7aWYoYT09ZG9jdW1l bnQuYWN0aXZlRWxlbWVudClyZXR1cm47aWYoSW5wdXQuaXNFbXB0eShhKSl7Q1NT LmNvbmRpdGlvbkNsYXNzKGEsJ0RPTUNvbnRyb2xfcGxhY2Vob2xkZXInLGIpO2Eu dmFsdWU9Yjt9fSxyZXNldDpmdW5jdGlvbihhKXtJbnB1dC5zZXRWYWx1ZShhLCcn KTt2YXIgYj1hLmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKTtiJiZJbnB1dC5z ZXRQbGFjZWhvbGRlcihhLGIpO2Euc3R5bGUuaGVpZ2h0PScnO30sc2V0U3VibWl0 T25FbnRlcjpmdW5jdGlvbihhLGIpe0NTUy5jb25kaXRpb25DbGFzcyhhLCdlbnRl cl9zdWJtaXQnLGIpO30sZ2V0U3VibWl0T25FbnRlcjpmdW5jdGlvbihhKXtyZXR1 cm4gQ1NTLmhhc0NsYXNzKGEsJ2VudGVyX3N1Ym1pdCcpO319KTsKZnVuY3Rpb24g c2hvdygpe2Zvcih2YXIgYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspe3ZhciBh PWdlKGFyZ3VtZW50c1tiXSk7aWYoYSYmYS5zdHlsZSlhLnN0eWxlLmRpc3BsYXk9 Jyc7fXJldHVybiBmYWxzZTt9ZnVuY3Rpb24gaGlkZSgpe2Zvcih2YXIgYj0wO2I8 YXJndW1lbnRzLmxlbmd0aDtiKyspe3ZhciBhPWdlKGFyZ3VtZW50c1tiXSk7aWYo YSYmYS5zdHlsZSlhLnN0eWxlLmRpc3BsYXk9J25vbmUnO31yZXR1cm4gZmFsc2U7 fWZ1bmN0aW9uIHNob3duKGEpe2E9Z2UoYSk7cmV0dXJuIChhLnN0eWxlLmRpc3Bs YXkhPSdub25lJyYmIShhLnN0eWxlLmRpc3BsYXk9PScnJiZhLm9mZnNldFdpZHRo PT0wKSk7fWZ1bmN0aW9uIHRvZ2dsZSgpe2Zvcih2YXIgYj0wO2I8YXJndW1lbnRz Lmxlbmd0aDtiKyspe3ZhciBhPSQoYXJndW1lbnRzW2JdKTthLnN0eWxlLmRpc3Bs YXk9Q1NTLmdldFN0eWxlKGEsImRpc3BsYXkiKT09J2Jsb2NrJz8nbm9uZSc6J2Js b2NrJzt9cmV0dXJuIGZhbHNlO31mdW5jdGlvbiB0b2dnbGVEaXNwbGF5Tm9uZSgp e2Zvcih2YXIgYj0wO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspe3ZhciBhPSQoYXJn dW1lbnRzW2JdKTtpZihzaG93bihhKSl7aGlkZShhKTt9ZWxzZSBzaG93KGEpO31y ZXR1cm4gZmFsc2U7fQp2YXIgS0VZUz17QkFDS1NQQUNFOjgsVEFCOjksUkVUVVJO OjEzLEVTQzoyNyxTUEFDRTozMixQQUdFX1VQOjMzLFBBR0VfRE9XTjozNCxMRUZU OjM3LFVQOjM4LFJJR0hUOjM5LERPV046NDAsREVMRVRFOjQ2LENPTU1BOjE4OH07 CmZ1bmN0aW9uIEFzeW5jU2lnbmFsKGIsYSl7dGhpcy5kYXRhPWF8fHt9O2lmKHdp bmRvdy5FbnYmJkVudi50cmFja2luZ19kb21haW4mJmIuY2hhckF0KDApPT0nLycp Yj1FbnYudHJhY2tpbmdfZG9tYWluK2I7dGhpcy51cmk9Yjt0aGlzLmhhbmRsZXI9 bnVsbDt9QXN5bmNTaWduYWwucHJvdG90eXBlLnNldEhhbmRsZXI9ZnVuY3Rpb24o YSl7dGhpcy5oYW5kbGVyPWE7cmV0dXJuIHRoaXM7fTtBc3luY1NpZ25hbC5wcm90 b3R5cGUuc2VuZD1mdW5jdGlvbigpe3ZhciBjPXRoaXMuaGFuZGxlcixiPXRoaXMu ZGF0YSxnPXRoaXMudXJpLGY9W10sZD1uZXcgSW1hZ2UoKSxhPWRvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKCdwb3N0X2Zvcm1faWQnKTtiLmFzeW5jU2lnbmFsPU1hdGgu Zmxvb3IoTWF0aC5yYW5kb20oKSoxMDAwMCkrMTtpZihhKWIucG9zdF9mb3JtX2lk PWEudmFsdWU7Zm9yKHZhciBlIGluIGIpZi5wdXNoKGVuY29kZVVSSUNvbXBvbmVu dChlKSsnPScrZW5jb2RlVVJJQ29tcG9uZW50KGJbZV0pKTtpZihnLmluZGV4T2Yo Jz8nKT09LTEpZys9Jz8nO2crPWYuam9pbignJicpO2lmKGMpZC5vbmxvYWQ9ZC5v bmVycm9yPShmdW5jdGlvbihpLGgpe3JldHVybiBmdW5jdGlvbigpe2goKGkuaGVp Z2h0PT0xKSk7fTt9KShkLGMpO2Quc3JjPWc7cmV0dXJuIHRoaXM7fTsKZnVuY3Rp b24gc2V0Q29va2llKGEsYixkLGUpe2lmKGVudl9nZXQoJ25vX2Nvb2tpZXMnKSYm YSE9J3RwYScpcmV0dXJuO2lmKGQpe3ZhciBmPW5ldyBEYXRlKCk7dmFyIGM9bmV3 IERhdGUoKTtjLnNldFRpbWUoZi5nZXRUaW1lKCkrZCk7fWRvY3VtZW50LmNvb2tp ZT1hKyI9IitlbmNvZGVVUklDb21wb25lbnQoYikrIjsgIisoZD8iZXhwaXJlcz0i K2MudG9HTVRTdHJpbmcoKSsiOyAiOiIiKSsicGF0aD0iKyhlfHwnLycpKyI7IGRv bWFpbj0iK3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZS5yZXBsYWNlKC9eLiooXC5m YWNlYm9va1wuLiopJC9pLCckMScpO31mdW5jdGlvbiBjbGVhckNvb2tpZShhKXtk b2N1bWVudC5jb29raWU9YSsiPTsgZXhwaXJlcz1TYXQsIDAxIEphbiAyMDAwIDAw OjAwOjAwIEdNVDsgIisicGF0aD0vOyBkb21haW49Iit3aW5kb3cubG9jYXRpb24u aG9zdG5hbWUucmVwbGFjZSgvXi4qKFwuZmFjZWJvb2tcLi4qKSQvaSwnJDEnKTt9 ZnVuY3Rpb24gZ2V0Q29va2llKGQpe3ZhciBlPWQrIj0iO3ZhciBiPWRvY3VtZW50 LmNvb2tpZS5zcGxpdCgnOycpO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXt2 YXIgYT1iW2NdO3doaWxlKGEuY2hhckF0KDApPT0nICcpYT1hLnN1YnN0cmluZygx LGEubGVuZ3RoKTtpZihhLmluZGV4T2YoZSk9PTApcmV0dXJuIGRlY29kZVVSSUNv bXBvbmVudChhLnN1YnN0cmluZyhlLmxlbmd0aCxhLmxlbmd0aCkpO31yZXR1cm4g bnVsbDt9CnZhciBFcnJvckRpYWxvZz17c2hvd0FzeW5jRXJyb3I6ZnVuY3Rpb24o Yil7dHJ5e3JldHVybiBFcnJvckRpYWxvZy5zaG93KGIuZ2V0RXJyb3JTdW1tYXJ5 KCksYi5nZXRFcnJvckRlc2NyaXB0aW9uKCkpO31jYXRjaChhKXthbGVydChiKTt9 fSxzaG93OmZ1bmN0aW9uKGQsYyxiLGEpe3JldHVybiAobmV3IERpYWxvZygpKS5z ZXRUaXRsZShkKS5zZXRCb2R5KGMpLnNldEJ1dHRvbnMoW0RpYWxvZy5PS10pLnNl dFN0YWNrYWJsZSh0cnVlKS5zZXRDbGFzc05hbWUoJ2Vycm9yRGlhbG9nJykuc2V0 TW9kYWwodHJ1ZSkuc2V0SGFuZGxlcihifHxiYWdvZmhvbGRpbmcpLnNldEJ1dHRv bnNNZXNzYWdlKGF8fCcnKS5zaG93KCk7fX07CmFkZF9wcm9wZXJ0aWVzKCdGb3Jt Jyx7Z2V0SW5wdXRzOmZ1bmN0aW9uKGEpe2E9YXx8ZG9jdW1lbnQ7cmV0dXJuIFtd LmNvbmNhdCgkQShET00uc2NyeShhLCdpbnB1dCcpKSwkQShET00uc2NyeShhLCdz ZWxlY3QnKSksJEEoRE9NLnNjcnkoYSwndGV4dGFyZWEnKSksJEEoRE9NLnNjcnko YSwnYnV0dG9uJykpKTt9LGdldFNlbGVjdFZhbHVlOmZ1bmN0aW9uKGEpe3JldHVy biBhLm9wdGlvbnNbYS5zZWxlY3RlZEluZGV4XS52YWx1ZTt9LHNldFNlbGVjdFZh bHVlOmZ1bmN0aW9uKGIsYyl7Zm9yKHZhciBhPTA7YTxiLm9wdGlvbnMubGVuZ3Ro OysrYSlpZihiLm9wdGlvbnNbYV0udmFsdWU9PWMpe2Iuc2VsZWN0ZWRJbmRleD1h O2JyZWFrO319LGdldFJhZGlvVmFsdWU6ZnVuY3Rpb24oYil7Zm9yKHZhciBhPTA7 YTxiLmxlbmd0aDthKyspaWYoYlthXS5jaGVja2VkKXJldHVybiBiW2FdLnZhbHVl O3JldHVybiBudWxsO30sZ2V0RWxlbWVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuICRB KGEudGFnTmFtZT09J0ZPUk0nP2EuZWxlbWVudHM6Rm9ybS5nZXRJbnB1dHMoYSkp O30sZ2V0QXR0cmlidXRlOmZ1bmN0aW9uKGIsYSl7cmV0dXJuIChiLmdldEF0dHJp YnV0ZU5vZGUoYSl8fHt9KS52YWx1ZXx8bnVsbDt9LHNldERpc2FibGVkOmZ1bmN0 aW9uKGIsYSl7Rm9ybS5nZXRFbGVtZW50cyhiKS5mb3JFYWNoKGZ1bmN0aW9uKGMp e2lmKGMuZGlzYWJsZWQhPXVuZGVmaW5lZCl7dmFyIGQ9RGF0YVN0b3JlLmdldChj LCdvcmlnRGlzYWJsZWRTdGF0ZScpO2lmKGEpe2lmKGQ9PT11bmRlZmluZWQpRGF0 YVN0b3JlLnNldChjLCdvcmlnRGlzYWJsZWRTdGF0ZScsYy5kaXNhYmxlZCk7Yy5k aXNhYmxlZD1hO31lbHNle2lmKGQhPT10cnVlKWMuZGlzYWJsZWQ9ZmFsc2U7RGF0 YVN0b3JlLnJlbW92ZShjLCdvcmlnRGlzYWJsZWRTdGF0ZScpO319fSk7fSxib290 c3RyYXA6ZnVuY3Rpb24oZCxlKXt2YXIgZj0oRm9ybS5nZXRBdHRyaWJ1dGUoZCwn bWV0aG9kJyl8fCdHRVQnKS50b1VwcGVyQ2FzZSgpO2U9UGFyZW50LmJ5VGFnKGUs J2J1dHRvbicpfHxlO3ZhciBnPURPTVBhdGguZmluZE5vZGVQYXRoKGQpO3ZhciBp PVBhcmVudC5ieUNsYXNzKGUsJ3N0YXRfZWxlbScpfHxkO2lmKENTUy5oYXNDbGFz cyhpLCdhc3luY19zYXZpbmcnKSlyZXR1cm47aWYoZSYmKGUuZm9ybSE9PWR8fChl Lm5vZGVOYW1lIT0nSU5QVVQnJiZlLm5vZGVOYW1lIT0nQlVUVE9OJyl8fGUudHlw ZSE9J3N1Ym1pdCcpKXt2YXIgaj1ET00uc2NyeShkLCcuZW50ZXJfc3VibWl0X3Rh cmdldCcpWzBdO3ZhciBiPWU7aiYmKGU9aik7fXZhciBjPUZvcm0uc2VyaWFsaXpl KGQsZSk7Rm9ybS5zZXREaXNhYmxlZChkLHRydWUpO3ZhciBhPUZvcm0uZ2V0QXR0 cmlidXRlKGQsJ2FqYXhpZnknKXx8Rm9ybS5nZXRBdHRyaWJ1dGUoZCwnYWN0aW9u Jyk7dHJhY2tSZWZlcnJlcihkLGEpO3ZhciBoPW5ldyBBc3luY1JlcXVlc3QoYSk7 aC5zZXREYXRhKGMpLnNldE5lY3Rhck1vZHVsZURhdGFTYWZlKGQpLnNldFJlYWRP bmx5KGY9PSdHRVQnKS5zZXRNZXRob2QoZikuc2V0UmVsYXRpdmVUbyhkKS5zZXRT dGF0dXNFbGVtZW50KGkpLnNldEhhbmRsZXIoZnVuY3Rpb24oayl7aWYoay5pc1Jl cGxheSgpKWguc2V0UmVsYXRpdmVUbyhET01QYXRoLnJlc29sdmVOb2RlUGF0aChn KSk7fSkuc2V0RmluYWxseUhhbmRsZXIoRm9ybS5zZXREaXNhYmxlZC5iaW5kKG51 bGwsZCxmYWxzZSkpLnNlbmQoKTt9LHNlcmlhbGl6ZTpmdW5jdGlvbihiLGMpe3Zh ciBhPXt9O0Zvcm0uZ2V0RWxlbWVudHMoYikuZm9yRWFjaChmdW5jdGlvbihkKXtp ZihkLm5hbWUmJiFkLmRpc2FibGVkJiZkLnR5cGUhPSdzdWJtaXQnKWlmKCFkLnR5 cGV8fCgoZC50eXBlPT0ncmFkaW8nfHxkLnR5cGU9PSdjaGVja2JveCcpJiZkLmNo ZWNrZWQpfHxkLnR5cGU9PSd0ZXh0J3x8ZC50eXBlPT0ncGFzc3dvcmQnfHxkLnR5 cGU9PSdoaWRkZW4nfHxkLnRhZ05hbWU9PSdURVhUQVJFQScpe3ZhciBoO2lmKGQu bmFtZT09J3Bvc3RfZm9ybV9pZCcpaD1FbnYucG9zdF9mb3JtX2lkO0Zvcm0uX3Nl cmlhbGl6ZUhlbHBlcihhLGQubmFtZSxofHxJbnB1dC5nZXRWYWx1ZShkKSk7fWVs c2UgaWYoZC50YWdOYW1lPT0nU0VMRUNUJylmb3IodmFyIGU9MCxmPWQub3B0aW9u cy5sZW5ndGg7ZTxmOysrZSl7dmFyIGc9ZC5vcHRpb25zW2VdO2lmKGcuc2VsZWN0 ZWQpRm9ybS5fc2VyaWFsaXplSGVscGVyKGEsZC5uYW1lLGcudmFsdWUpO319KTtp ZihjJiZjLm5hbWUmJidzdWJtaXQnPT1jLnR5cGUmJkRPTS5jb250YWlucyhiLGMp JiZET00uaXNOb2RlKGMsWydpbnB1dCcsJ2J1dHRvbiddKSlGb3JtLl9zZXJpYWxp emVIZWxwZXIoYSxjLm5hbWUsYy52YWx1ZSk7cmV0dXJuIEZvcm0uX3NlcmlhbGl6 ZUZpeChhKTt9LF9zZXJpYWxpemVIZWxwZXI6ZnVuY3Rpb24oYSxkLGUpe3ZhciBj PS8oW15cXV0rKVxbKFteXF1dKilcXSguKikvLmV4ZWMoZCk7aWYoYyl7YVtjWzFd XT1hW2NbMV1dfHx7fTtpZihjWzJdPT0nJyl7dmFyIGI9MDt3aGlsZShhW2NbMV1d W2JdIT11bmRlZmluZWQpYisrO31lbHNlIGI9Y1syXTtpZihjWzNdPT0nJyl7YVtj WzFdXVtiXT1lO31lbHNlIEZvcm0uX3NlcmlhbGl6ZUhlbHBlcihhW2NbMV1dLGIu Y29uY2F0KGNbM10pLGUpO31lbHNlIGFbZF09ZTt9LF9zZXJpYWxpemVGaXg6ZnVu Y3Rpb24oYSl7dmFyIGU9W107Zm9yKHZhciBiIGluIGEpe2lmKGEgaW5zdGFuY2Vv ZiBPYmplY3QpYVtiXT1Gb3JtLl9zZXJpYWxpemVGaXgoYVtiXSk7ZS5wdXNoKGIp O312YXIgZD0wLGM9dHJ1ZTtlLnNvcnQoKS5lYWNoKGZ1bmN0aW9uKGcpe2lmKGch PWQrKyljPWZhbHNlO30pO2lmKGMpe3ZhciBmPXt9O2UuZWFjaChmdW5jdGlvbihn KXtmW2ddPWFbZ107fSk7cmV0dXJuIGY7fWVsc2UgcmV0dXJuIGE7fSxwb3N0OmZ1 bmN0aW9uKGQsYixjKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3Jt Jyk7YS5hY3Rpb249ZC50b1N0cmluZygpO2EubWV0aG9kPSdQT1NUJzthLnN0eWxl LmRpc3BsYXk9J25vbmUnO2lmKGMpYS50YXJnZXQ9YztpZihnZSgncG9zdF9mb3Jt X2lkJykpYi5wb3N0X2Zvcm1faWQ9JCgncG9zdF9mb3JtX2lkJykudmFsdWU7Yi5m Yl9kdHNnPUVudi5mYl9kdHNnO2IucG9zdF9mb3JtX2lkX3NvdXJjZT0nZHluYW1p Y19wb3N0JztiLm5leHQ9aHRtbHNwZWNpYWxjaGFycyhkb2N1bWVudC5sb2NhdGlv bi5ocmVmKTtGb3JtLmNyZWF0ZUhpZGRlbklucHV0cyhiLGEpO0RPTS5nZXRSb290 RWxlbWVudCgpLmFwcGVuZENoaWxkKGEpO2Euc3VibWl0KCk7cmV0dXJuIGZhbHNl O30sY3JlYXRlSGlkZGVuSW5wdXRzOmZ1bmN0aW9uKGcsYSxkLGYpe2Q9ZHx8e307 dmFyIGM7dmFyIGg9VVJJLmltcGxvZGVRdWVyeShnLCcnLGZhbHNlKTt2YXIgaT1o LnNwbGl0KCcmJyk7Zm9yKHZhciBiPTA7YjxpLmxlbmd0aDtiKyspaWYoaVtiXSl7 dmFyIGo9aVtiXS5zcGxpdCgnPScpO3ZhciBlPWpbMF07dmFyIGs9alsxXTtpZihl PT09dW5kZWZpbmVkfHxrPT09dW5kZWZpbmVkKWNvbnRpbnVlO2s9VVJJLmRlY29k ZUNvbXBvbmVudChrKTtpZihkW2VdJiZmKXtkW2VdLnZhbHVlPWs7fWVsc2V7Yz0k TignaW5wdXQnLHt0eXBlOidoaWRkZW4nLG5hbWU6ZSx2YWx1ZTprfSk7ZFtlXT1j O2EuYXBwZW5kQ2hpbGQoYyk7fX1yZXR1cm4gZDt9LGdldEZpcnN0RWxlbWVudDpm dW5jdGlvbihiKXt2YXIgZj1bJ2lucHV0W3R5cGU9InRleHQiXScsJ3RleHRhcmVh JywnaW5wdXRbdHlwZT0icGFzc3dvcmQiXScsJ2lucHV0W3R5cGU9ImJ1dHRvbiJd JywnaW5wdXRbdHlwZT0ic3VibWl0Il0nXTt2YXIgZT1bXTtmb3IodmFyIGM9MDtj PGYubGVuZ3RoJiZlLmxlbmd0aD09MDtjKyspZT1ET00uc2NyeShiLGZbY10pO2lm KGUubGVuZ3RoPjApe3ZhciBkPWVbMF07dHJ5e2lmKGVsZW1lbnRZKGQpPjAmJmVs ZW1lbnRYKGQpPjApcmV0dXJuIGQ7fWNhdGNoKGEpe319cmV0dXJuIG51bGw7fSxm b2N1c0ZpcnN0OmZ1bmN0aW9uKGIpe3ZhciBhPUZvcm0uZ2V0Rmlyc3RFbGVtZW50 KGIpO2lmKGEpe2EuZm9jdXMoKTtyZXR1cm4gdHJ1ZTt9cmV0dXJuIGZhbHNlO319 KTt2YXIgRE9NUGF0aD17ZmluZE5vZGVQYXRoOmZ1bmN0aW9uKGMsZSl7ZT1lfHxb XTtpZihjLmlkfHwhRE9NLmlzTm9kZShjLnBhcmVudE5vZGUpKXJldHVybiB7aWQ6 Yy5pZCxwYXRoOmUucmV2ZXJzZSgpfTt2YXIgZD1jLnBhcmVudE5vZGU7dmFyIGI9 ZC5jaGlsZE5vZGVzO2Zvcih2YXIgYT0wO2E8Yi5sZW5ndGg7KythKWlmKGJbYV09 PT1jKXtlLnB1c2goYSk7cmV0dXJuIERPTVBhdGguZmluZE5vZGVQYXRoKGQsZSk7 fXJldHVybiBudWxsO30scmVzb2x2ZU5vZGVQYXRoOmZ1bmN0aW9uKGEpe3ZhciBi PWdlKGEuaWQpfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIERPTVBh dGguX3Jlc29sdmVOb2RlUGF0aENoaWxkcmVuKGEucGF0aCxiLDApO30sX3Jlc29s dmVOb2RlUGF0aENoaWxkcmVuOmZ1bmN0aW9uKGMsZCxiKXtpZihiPT09Yy5sZW5n dGgpcmV0dXJuIGQ7dmFyIGE9ZC5jaGlsZE5vZGVzW2NbYl1dO2lmKCFhKXJldHVy biBudWxsO3JldHVybiBET01QYXRoLl9yZXNvbHZlTm9kZVBhdGhDaGlsZHJlbihj LGEsYisxKTt9fTsKZnVuY3Rpb24gRGlhbG9nKGEpe3RoaXMuX3Nob3dfbG9hZGlu Zz10cnVlO3RoaXMuX2xvYWRpbmdfd2FzX3Nob3duPWZhbHNlO3RoaXMuX2F1dG9f Zm9jdXM9dHJ1ZTt0aGlzLl9mYWRlX2VuYWJsZWQ9dHJ1ZTt0aGlzLl9vbmxvYWRf aGFuZGxlcnM9W107dGhpcy5fdG9wPTEyNTt0aGlzLl91bmlxdWVJRD0nZGlhbG9n XycrRGlhbG9nLl9nbG9iYWxDb3VudCsrO3RoaXMuX2NvbnRlbnQ9bnVsbDt0aGlz Ll9vYmo9bnVsbDt0aGlzLl9wb3B1cD1udWxsO3RoaXMuX292ZXJsYXk9bnVsbDt0 aGlzLl9zaGltPW51bGw7dGhpcy5faGlkZGVuX29iamVjdHM9W107dGhpcy5fY2F1 c2FsX2VsZW09bnVsbDtpZihhKXRoaXMuX3NldEZyb21Nb2RlbChhKTt9TWV0YXBy b3RvdHlwZS5tYWtlRmluYWwoRGlhbG9nKTtjb3B5X3Byb3BlcnRpZXMoRGlhbG9n LHtPSzp7bmFtZTonb2snLGxhYmVsOl90eCgiT2theSIpfSxDQU5DRUw6e25hbWU6 J2NhbmNlbCcsbGFiZWw6X3R4KCJDYW5jZWwiKSxjbGFzc05hbWU6J2lucHV0YXV4 J30sQ0xPU0U6e25hbWU6J2Nsb3NlJyxsYWJlbDpfdHgoIkNsb3NlIil9LE5FWFQ6 e25hbWU6J25leHQnLGxhYmVsOl90eCgiTmV4dCIpfSxTQVZFOntuYW1lOidzYXZl JyxsYWJlbDpfdHgoIlNhdmUiKX0sU1VCTUlUOntuYW1lOidzdWJtaXQnLGxhYmVs Ol90eCgiU3VibWl0Iil9LENPTkZJUk06e25hbWU6J2NvbmZpcm0nLGxhYmVsOl90 eCgiQ29uZmlybSIpfSxERUxFVEU6e25hbWU6J2RlbGV0ZScsbGFiZWw6X3R4KCJE ZWxldGUiKX0sX2dsb2JhbENvdW50OjAsX2JvdHRvbXM6WzBdLG1heF9ib3R0b206 MCxfdXBkYXRlTWF4Qm90dG9tOmZ1bmN0aW9uKCl7RGlhbG9nLm1heF9ib3R0b209 TWF0aC5tYXguYXBwbHkoTWF0aCxEaWFsb2cuX2JvdHRvbXMpO319KTtjb3B5X3By b3BlcnRpZXMoRGlhbG9nLHtPS19BTkRfQ0FOQ0VMOltEaWFsb2cuT0ssRGlhbG9n LkNBTkNFTF0sX1NUQU5EQVJEX0JVVFRPTlM6W0RpYWxvZy5PSyxEaWFsb2cuQ0FO Q0VMLERpYWxvZy5DTE9TRSxEaWFsb2cuU0FWRSxEaWFsb2cuU1VCTUlULERpYWxv Zy5DT05GSVJNLERpYWxvZy5ERUxFVEVdLFNIT1VMRF9ISURFX09CSkVDVFM6IXVh LndpbmRvd3MoKSxfdXNlQ1NTQm9yZGVyczpDU1Muc3VwcG9ydHNCb3JkZXJSYWRp dXMoKXx8dWEuaWUoKTw9NixTSVpFOntXSURFOjU1NSxTVEFOREFSRDo0NDV9LF9I QUxPX1dJRFRIOjEwLF9CT1JERVJfV0lEVEg6MSxfUEFERElOR19XSURUSDoxMCxN T0RBTElUWTp7REFSSzonZGFyaycsV0hJVEU6J3doaXRlJ30sZGlhbG9nU3RhY2s6 bnVsbCxuZXdCdXR0b246ZnVuY3Rpb24oZSxkLGIsYyl7dmFyIGE9e25hbWU6ZSxs YWJlbDpkfTtpZihiKWEuY2xhc3NOYW1lPWI7aWYoYylhLmhhbmRsZXI9YztyZXR1 cm4gYTt9LGdldEN1cnJlbnQ6ZnVuY3Rpb24oKXt2YXIgYT1EaWFsb2cuZGlhbG9n U3RhY2s7aWYoIWF8fCFhLmxlbmd0aClyZXR1cm4gbnVsbDtyZXR1cm4gYVthLmxl bmd0aC0xXTt9LGJvb3RzdHJhcDpmdW5jdGlvbihpLGEsZixkLGUsYyl7YT1hfHx7 fTt2YXIgaj1jJiZjLnJlbD09J2RpYWxvZy1waXBlJztjb3B5X3Byb3BlcnRpZXMo YSxuZXcgVVJJKGkpLmdldFF1ZXJ5RGF0YSgpKTtkPWR8fChmPydHRVQnOidQT1NU Jyk7dmFyIGg9UGFyZW50LmJ5Q2xhc3MoYywnc3RhdF9lbGVtJyl8fGM7aWYoaCYm Q1NTLmhhc0NsYXNzKGgsJ2FzeW5jX3NhdmluZycpKXJldHVybiBmYWxzZTt2YXIg ZztpZihqKXtnPW5ldyBBamF4UGlwZVJlcXVlc3QoKTt9ZWxzZSBnPW5ldyBBc3lu Y1JlcXVlc3QoKS5zZXRSZWFkT25seSghIWYpLnNldE1ldGhvZChkKS5zZXRSZWxh dGl2ZVRvKGMpLnNldFN0YXR1c0VsZW1lbnQoaCk7Zy5zZXRVUkkoaSkuc2V0TmVj dGFyTW9kdWxlRGF0YVNhZmUoYykuc2V0RGF0YShhKTt2YXIgYj1uZXcgRGlhbG9n KGUpLnNldENhdXNhbEVsZW1lbnQoYykuc2V0QXN5bmMoZyxqKTtiLnNob3coKTty ZXR1cm4gZmFsc2U7fSxfYmFzaWNNdXRhdG9yOmZ1bmN0aW9uKGEpe3JldHVybiBm dW5jdGlvbihiKXt0aGlzW2FdPWI7dGhpcy5fZGlydHkoKTtyZXR1cm4gdGhpczt9 O30sX2ZpbmRCdXR0b246ZnVuY3Rpb24oYSxjKXtpZihhKWZvcih2YXIgYj0wO2I8 YS5sZW5ndGg7KytiKWlmKGFbYl0ubmFtZT09YylyZXR1cm4gYVtiXTtyZXR1cm4g bnVsbDt9LF9rZXlEb3duRmlsdGVyOmZ1bmN0aW9uKGV2ZW50LGEpe3JldHVybiBh PT0nb25rZXlkb3duJyYmS2V5RXZlbnRDb250cm9sbGVyLmZpbHRlckV2ZW50TW9k aWZpZXJzKGV2ZW50LGEpO30sX3RlYXJEb3duOmZ1bmN0aW9uKCl7RGlhbG9nLl9o aWRlQWxsKCk7RGlhbG9nLmRpYWxvZ1N0YWNrPW51bGw7fSxfaGlkZUFsbDpmdW5j dGlvbigpe2lmKERpYWxvZy5kaWFsb2dTdGFjayE9PW51bGwmJkRpYWxvZy5kaWFs b2dTdGFjay5sZW5ndGgpe3ZhciBiPURpYWxvZy5kaWFsb2dTdGFjay5jbG9uZSgp O0RpYWxvZy5kaWFsb2dTdGFjaz1udWxsO2Zvcih2YXIgYT1iLmxlbmd0aC0xO2E+ PTA7YS0tKWJbYV0uaGlkZSgpO319LF9oYW5kbGVFc2NhcGVLZXk6ZnVuY3Rpb24o ZXZlbnQsYSl7RGlhbG9nLl9lc2NhcGUoKTt9LF9lc2NhcGU6ZnVuY3Rpb24oKXt2 YXIgZD1EaWFsb2cuZ2V0Q3VycmVudCgpO2lmKCFkKXJldHVybiB0cnVlO3ZhciBl PWQuX3NlbWlfbW9kYWw7dmFyIGI9ZC5fYnV0dG9ucztpZighYiYmIWUpcmV0dXJu IHRydWU7aWYoZSYmIWIpe2QuaGlkZSgpO3JldHVybiBmYWxzZTt9dmFyIGE7dmFy IGM9RGlhbG9nLl9maW5kQnV0dG9uKGIsJ2NhbmNlbCcpO2lmKGQuX2NhbmNlbEhh bmRsZXIpe2QuY2FuY2VsKCk7cmV0dXJuIGZhbHNlO31lbHNlIGlmKGMpe2E9Yzt9 ZWxzZSBpZihiLmxlbmd0aD09MSl7YT1iWzBdO31lbHNlIHJldHVybiB0cnVlO2Qu X2hhbmRsZUJ1dHRvbihhKTtyZXR1cm4gZmFsc2U7fSxjYWxsX29yX2V2YWw6ZnVu Y3Rpb24ob2JqLGZ1bmMsYXJncyl7aWYoIWZ1bmMpcmV0dXJuIHVuZGVmaW5lZDth cmdzPWFyZ3N8fHt9O2lmKHR5cGVvZihmdW5jKT09J3N0cmluZycpe3ZhciBwYXJh bXM9a2V5cyhhcmdzKS5qb2luKCcsICcpO2Z1bmM9ZXZhbCgnKHtmOiBmdW5jdGlv bignK3BhcmFtcysnKSB7ICcrZnVuYysnfX0pJykuZjt9cmV0dXJuIGZ1bmMuYXBw bHkob2JqLHZhbHVlcyhhcmdzKSk7fX0pO2NvcHlfcHJvcGVydGllcyhEaWFsb2cu cHJvdG90eXBlLHtzaG93OmZ1bmN0aW9uKGEpe3RoaXMuX3Nob3dpbmc9dHJ1ZTtp ZihhKXtpZih0aGlzLl9vdmVybGF5KXRoaXMuX292ZXJsYXkuc3R5bGUuZGlzcGxh eT0nJztpZih0aGlzLl9mYWRlX2VuYWJsZWQpQ1NTLnNldFN0eWxlKHRoaXMuX29i aiwnb3BhY2l0eScsMSk7dGhpcy5fb2JqLnN0eWxlLmRpc3BsYXk9Jyc7fWVsc2Ug dGhpcy5fZGlydHkoKTtyZXR1cm4gdGhpczt9LHNob3dMb2FkaW5nOmZ1bmN0aW9u KCl7dGhpcy5fbG9hZGluZ193YXNfc2hvd249dHJ1ZTt0aGlzLl9yZW5kZXJEaWFs b2coJE4oJ2Rpdicse2NsYXNzTmFtZTonZGlhbG9nX2xvYWRpbmcnfSxfdHgoIkxv YWRpbmcuLi4iKSkpO3JldHVybiB0aGlzO30saGlkZTpmdW5jdGlvbihhKXtpZigh dGhpcy5fc2hvd2luZylyZXR1cm4gdGhpczt0aGlzLl9zaG93aW5nPWZhbHNlO2lm KHRoaXMuX2F1dG9oaWRlX3RpbWVvdXQpe2NsZWFyVGltZW91dCh0aGlzLl9hdXRv aGlkZV90aW1lb3V0KTt0aGlzLl9hdXRvaGlkZV90aW1lb3V0PW51bGw7fWlmKHRo aXMuX2ZhZGVfZW5hYmxlZCYmKCFEaWFsb2cuZGlhbG9nU3RhY2t8fERpYWxvZy5k aWFsb2dTdGFjay5sZW5ndGg8PTEpKXt0aGlzLl9mYWRlT3V0KGEpO31lbHNlIHRo aXMuX2hpZGUoYSk7cmV0dXJuIHRoaXM7fSxjYW5jZWw6ZnVuY3Rpb24oKXtpZigh dGhpcy5fY2FuY2VsSGFuZGxlcnx8dGhpcy5fY2FuY2VsSGFuZGxlcigpIT09ZmFs c2UpdGhpcy5oaWRlKCk7fSxnZXRSb290OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu X29iajt9LGdldEJvZHk6ZnVuY3Rpb24oKXtyZXR1cm4gRE9NLnNjcnkodGhpcy5f b2JqLCdkaXYuZGlhbG9nX2JvZHknKVswXTt9LGdldEJ1dHRvbkVsZW1lbnQ6ZnVu Y3Rpb24oYSl7aWYodHlwZW9mIGE9PSdzdHJpbmcnKWE9RGlhbG9nLl9maW5kQnV0 dG9uKHRoaXMuX2J1dHRvbnMsYSk7aWYoIWF8fCFhLm5hbWUpcmV0dXJuIG51bGw7 dmFyIGI9RE9NLnNjcnkodGhpcy5fcG9wdXAsJ2lucHV0Jyk7dmFyIGM9ZnVuY3Rp b24oZCl7cmV0dXJuIGQubmFtZT09YS5uYW1lO307cmV0dXJuIGIuZmlsdGVyKGMp WzBdfHxudWxsO30sZ2V0Q29udGVudE5vZGU6ZnVuY3Rpb24oKXtyZXR1cm4gRE9N LmZpbmQodGhpcy5fY29udGVudCwnZGl2LmRpYWxvZ19jb250ZW50Jyk7fSxnZXRG b3JtRGF0YTpmdW5jdGlvbigpe3JldHVybiBGb3JtLnNlcmlhbGl6ZSh0aGlzLmdl dENvbnRlbnROb2RlKCkpO30sc2V0U2hvd2luZzpmdW5jdGlvbigpe3RoaXMuc2hv dygpO3JldHVybiB0aGlzO30sc2V0SGlkaW5nOmZ1bmN0aW9uKCl7dGhpcy5oaWRl KCk7cmV0dXJuIHRoaXM7fSxzZXRUaXRsZTpEaWFsb2cuX2Jhc2ljTXV0YXRvcign X3RpdGxlJyksc2V0Qm9keTpEaWFsb2cuX2Jhc2ljTXV0YXRvcignX2JvZHknKSxz ZXRFeHRyYURhdGE6RGlhbG9nLl9iYXNpY011dGF0b3IoJ19leHRyYV9kYXRhJyks c2V0UmV0dXJuRGF0YTpEaWFsb2cuX2Jhc2ljTXV0YXRvcignX3JldHVybl9kYXRh Jyksc2V0U2hvd0xvYWRpbmc6RGlhbG9nLl9iYXNpY011dGF0b3IoJ19zaG93X2xv YWRpbmcnKSxzZXRGdWxsQmxlZWQ6RGlhbG9nLl9iYXNpY011dGF0b3IoJ19mdWxs X2JsZWVkJyksc2V0SW1tZWRpYXRlUmVuZGVyaW5nOmZ1bmN0aW9uKGEpe3RoaXMu X2ltbWVkaWF0ZV9yZW5kZXJpbmc9YTtyZXR1cm4gdGhpczt9LHNldENhdXNhbEVs ZW1lbnQ6ZnVuY3Rpb24oYSl7dGhpcy5fY2F1c2FsX2VsZW09YTtyZXR1cm4gdGhp czt9LHNldFVzZXJEYXRhOkRpYWxvZy5fYmFzaWNNdXRhdG9yKCdfdXNlcl9kYXRh JyksZ2V0VXNlckRhdGE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdXNlcl9kYXRh O30sc2V0QXV0b2hpZGU6ZnVuY3Rpb24oYSl7aWYoYSl7aWYodGhpcy5fc2hvd2lu Zyl7dGhpcy5fYXV0b2hpZGVfdGltZW91dD1zZXRUaW1lb3V0KHRoaXMuaGlkZS5z aGllbGQodGhpcyksYSk7fWVsc2UgdGhpcy5fYXV0b2hpZGU9YTt9ZWxzZXt0aGlz Ll9hdXRvaGlkZT1udWxsO2lmKHRoaXMuX2F1dG9oaWRlX3RpbWVvdXQpe2NsZWFy VGltZW91dCh0aGlzLl9hdXRvaGlkZV90aW1lb3V0KTt0aGlzLl9hdXRvaGlkZV90 aW1lb3V0PW51bGw7fX1yZXR1cm4gdGhpczt9LHNldFN1bW1hcnk6RGlhbG9nLl9i YXNpY011dGF0b3IoJ19zdW1tYXJ5Jyksc2V0QnV0dG9uczpmdW5jdGlvbihhKXt2 YXIgYztpZighKGEgaW5zdGFuY2VvZiBBcnJheSkpe2M9JEEoYXJndW1lbnRzKTt9 ZWxzZSBjPWE7Zm9yKHZhciBkPTA7ZDxjLmxlbmd0aDsrK2QpaWYodHlwZW9mIGNb ZF09PSdzdHJpbmcnKXt2YXIgYj1EaWFsb2cuX2ZpbmRCdXR0b24oRGlhbG9nLl9T VEFOREFSRF9CVVRUT05TLGNbZF0pO2NbZF09Yjt9dGhpcy5fYnV0dG9ucz1jO3Ro aXMuX3VwZGF0ZUJ1dHRvbnMoKTtyZXR1cm4gdGhpczt9LHNldEJ1dHRvbnNNZXNz YWdlOkRpYWxvZy5fYmFzaWNNdXRhdG9yKCdfYnV0dG9uc19tZXNzYWdlJyksc2V0 Q2xpY2tCdXR0b25PbkVudGVyOmZ1bmN0aW9uKGIsYSl7dGhpcy5fY2xpY2tCdXR0 b25PbkVudGVyPWE7dGhpcy5fY2xpY2tCdXR0b25PbkVudGVySW5wdXROYW1lPWI7 cmV0dXJuIHRoaXM7fSxzZXRTdGFja2FibGU6ZnVuY3Rpb24oYixhKXt0aGlzLl9p c19zdGFja2FibGU9Yjt0aGlzLl9zaG93bl93aGlsZV9zdGFja2VkPWImJmE7cmV0 dXJuIHRoaXM7fSxzZXRIYW5kbGVyOmZ1bmN0aW9uKGEpe3RoaXMuX2hhbmRsZXI9 YTtyZXR1cm4gdGhpczt9LHNldENhbmNlbEhhbmRsZXI6ZnVuY3Rpb24oYSl7dGhp cy5fY2FuY2VsSGFuZGxlcj1EaWFsb2cuY2FsbF9vcl9ldmFsLmJpbmQobnVsbCx0 aGlzLGEpO3JldHVybiB0aGlzO30sc2V0Q2xvc2VIYW5kbGVyOmZ1bmN0aW9uKGEp e3RoaXMuX2Nsb3NlX2hhbmRsZXI9RGlhbG9nLmNhbGxfb3JfZXZhbC5iaW5kKG51 bGwsdGhpcyxhKTtyZXR1cm4gdGhpczt9LGNsZWFySGFuZGxlcjpmdW5jdGlvbigp e3JldHVybiB0aGlzLnNldEhhbmRsZXIobnVsbCk7fSxzZXRQb3N0VVJJOmZ1bmN0 aW9uKGIsYSl7aWYoYT09PXVuZGVmaW5lZClhPXRydWU7aWYoYSl7dGhpcy5zZXRI YW5kbGVyKHRoaXMuX3N1Ym1pdEZvcm0uYmluZCh0aGlzLCdQT1NUJyxiKSk7fWVs c2UgdGhpcy5zZXRIYW5kbGVyKGZ1bmN0aW9uKCl7Rm9ybS5wb3N0KGIsdGhpcy5n ZXRGb3JtRGF0YSgpKTt0aGlzLmhpZGUoKTt9LmJpbmQodGhpcykpO3JldHVybiB0 aGlzO30sc2V0R2V0VVJJOmZ1bmN0aW9uKGEpe3RoaXMuc2V0SGFuZGxlcih0aGlz Ll9zdWJtaXRGb3JtLmJpbmQodGhpcywnR0VUJyxhKSk7cmV0dXJuIHRoaXM7fSxz ZXRNb2RhbDpmdW5jdGlvbihhLGIpe2lmKGE9PT11bmRlZmluZWQpYT10cnVlO2lm KGEmJmIpc3dpdGNoKGIpe2Nhc2UgRGlhbG9nLk1PREFMSVRZLkRBUks6dGhpcy5f bW9kYWxfY2xhc3M9J2RhcmsnO2JyZWFrO2Nhc2UgRGlhbG9nLk1PREFMSVRZLldI SVRFOnRoaXMuX21vZGFsX2NsYXNzPSd3aGl0ZSc7YnJlYWs7fXRoaXMuX21vZGFs PWE7cmV0dXJuIHRoaXM7fSxzZXRTZW1pTW9kYWw6ZnVuY3Rpb24oYSl7aWYoYT09 PXVuZGVmaW5lZClhPXRydWU7aWYoYSl0aGlzLnNldE1vZGFsKHRydWUsRGlhbG9n Lk1PREFMSVRZLkRBUkspO3RoaXMuX3NlbWlfbW9kYWw9YTtyZXR1cm4gdGhpczt9 LHNldFdpZGVEaWFsb2c6RGlhbG9nLl9iYXNpY011dGF0b3IoJ193aWRlX2RpYWxv ZycpLHNldENvbnRlbnRXaWR0aDpEaWFsb2cuX2Jhc2ljTXV0YXRvcignX2NvbnRl bnRfd2lkdGgnKSxzZXRUaXRsZUxvYWRpbmc6ZnVuY3Rpb24oYil7aWYoYj09PXVu ZGVmaW5lZCliPXRydWU7dmFyIGE9RE9NLmZpbmQodGhpcy5fcG9wdXAsJ2gyLmRp YWxvZ190aXRsZScpO2lmKGEpQ1NTLmNvbmRpdGlvbkNsYXNzKGEsJ2xvYWRpbmcn LGIpO3JldHVybiB0aGlzO30sc2V0U2VjdXJlOkRpYWxvZy5fYmFzaWNNdXRhdG9y KCdfc2VjdXJlJyksc2V0Q2xhc3NOYW1lOkRpYWxvZy5fYmFzaWNNdXRhdG9yKCdf Y2xhc3NfbmFtZScpLHNldEZhZGVFbmFibGVkOkRpYWxvZy5fYmFzaWNNdXRhdG9y KCdfZmFkZV9lbmFibGVkJyksc2V0Rm9vdGVyOkRpYWxvZy5fYmFzaWNNdXRhdG9y KCdfZm9vdGVyJyksc2V0QXV0b0ZvY3VzOkRpYWxvZy5fYmFzaWNNdXRhdG9yKCdf YXV0b19mb2N1cycpLHNldFRvcDpEaWFsb2cuX2Jhc2ljTXV0YXRvcignX3RvcCcp LG9ubG9hZFJlZ2lzdGVyOmZ1bmN0aW9uKGEpeyRBKGEpLmZvckVhY2goZnVuY3Rp b24oYil7aWYodHlwZW9mIGI9PSdzdHJpbmcnKWI9bmV3IEZ1bmN0aW9uKGIpO3Ro aXMuX29ubG9hZF9oYW5kbGVycy5wdXNoKGIuYmluZCh0aGlzKSk7fS5iaW5kKHRo aXMpKTtyZXR1cm4gdGhpczt9LHNldEFzeW5jVVJMOmZ1bmN0aW9uKGEpe3JldHVy biB0aGlzLnNldEFzeW5jKG5ldyBBc3luY1JlcXVlc3QoYSkpO30sc2V0QXN5bmM6 ZnVuY3Rpb24oYSxmKXt2YXIgYz1mdW5jdGlvbihqKXtpZih0aGlzLl9hc3luY19y ZXF1ZXN0IT1hKXJldHVybjt0aGlzLl9hc3luY19yZXF1ZXN0PW51bGw7dmFyIGk9 ai5nZXRQYXlsb2FkKCk7dmFyIGc9aTt2YXIgaD1mdW5jdGlvbigpe2lmKHR5cGVv ZiBnPT0nc3RyaW5nJyl7dGhpcy5zZXRCb2R5KGcpO31lbHNlIHRoaXMuX3NldEZy b21Nb2RlbChnKTt0aGlzLl91cGRhdGUodHJ1ZSk7fS5iaW5kKHRoaXMpO2lmKGYp e2c9aS5kaWFsb2c7Qm9vdGxvYWRlci5zZXRSZXNvdXJjZU1hcChpLnJlc291cmNl X21hcCk7Qm9vdGxvYWRlci5sb2FkUmVzb3VyY2VzKGkuY3NzLGgpO31lbHNlIGgo KTt9LmJpbmQodGhpcyk7dmFyIGI9YS5nZXREYXRhKCk7Yi5fX2Q9MTthLnNldERh dGEoYik7dmFyIGQ9YmluZCh0aGlzLCdoaWRlJyk7dmFyIGU7aWYoZil7YS5zZXRG aXJzdFJlc3BvbnNlSGFuZGxlcihjKTtlPWEuZ2V0QXN5bmNSZXF1ZXN0KCk7fWVs c2V7YS5zZXRIYW5kbGVyKGNoYWluKGEuZ2V0SGFuZGxlcigpLGMpKTtlPWE7fWUu c2V0RXJyb3JIYW5kbGVyKGNoYWluKGQsZS5nZXRFcnJvckhhbmRsZXIoKSkpLnNl dFRyYW5zcG9ydEVycm9ySGFuZGxlcihjaGFpbihkLGUuZ2V0VHJhbnNwb3J0RXJy b3JIYW5kbGVyKCkpKTthLnNlbmQoKTt0aGlzLl9hc3luY19yZXF1ZXN0PWE7dGhp cy5fZGlydHkoKTtyZXR1cm4gdGhpczt9LF9kaXJ0eTpmdW5jdGlvbigpe2lmKCF0 aGlzLl9pc19kaXJ0eSl7dGhpcy5faXNfZGlydHk9dHJ1ZTtpZih0aGlzLl9pbW1l ZGlhdGVfcmVuZGVyaW5nKXt0aGlzLl91cGRhdGUoKTt9ZWxzZSBiaW5kKHRoaXMs J191cGRhdGUnLGZhbHNlKS5kZWZlcigpO319LF9mb3JtYXQ6ZnVuY3Rpb24oYSl7 aWYodHlwZW9mIGE9PSdzdHJpbmcnKXthPUhUTUwoYSk7fWVsc2UgYT1IVE1MLnJl cGxhY2VKU09OV3JhcHBlcihhKTtpZihhIGluc3RhbmNlb2YgSFRNTClhLnNldERl ZmVycmVkKHRydWUpO3JldHVybiBhO30sX3VwZGF0ZTpmdW5jdGlvbihkKXtpZigh dGhpcy5faXNfZGlydHkmJmQhPT10cnVlKXJldHVybjt0aGlzLl9pc19kaXJ0eT1m YWxzZTtpZighdGhpcy5fc2hvd2luZylyZXR1cm47aWYodGhpcy5fYXV0b2hpZGUm JiF0aGlzLl9hc3luY19yZXF1ZXN0JiYhdGhpcy5fYXV0b2hpZGVfdGltZW91dCl0 aGlzLl9hdXRvaGlkZV90aW1lb3V0PXNldFRpbWVvdXQoYmluZCh0aGlzLCdoaWRl JyksdGhpcy5fYXV0b2hpZGUpO2lmKCF0aGlzLl9hc3luY19yZXF1ZXN0fHwhdGhp cy5fc2hvd19sb2FkaW5nKXtpZih0aGlzLl9sb2FkaW5nX3dhc19zaG93bj09PXRy dWUpe3RoaXMuX2hpZGUodHJ1ZSk7dGhpcy5fbG9hZGluZ193YXNfc2hvd249ZmFs c2U7fXZhciBiPVtdO2lmKHRoaXMuX3N1bW1hcnkpYi5wdXNoKCROKCdkaXYnLHtj bGFzc05hbWU6J2RpYWxvZ19zdW1tYXJ5J30sdGhpcy5fZm9ybWF0KHRoaXMuX3N1 bW1hcnkpKSk7Yi5wdXNoKCROKCdkaXYnLHtjbGFzc05hbWU6J2RpYWxvZ19ib2R5 J30sdGhpcy5fZm9ybWF0KHRoaXMuX2JvZHkpKSk7dmFyIGE9dGhpcy5fZ2V0QnV0 dG9uQ29udGVudCgpO2lmKGEubGVuZ3RoKWIucHVzaCgkTignZGl2Jyx7Y2xhc3NO YW1lOidkaWFsb2dfYnV0dG9ucyBjbGVhcmZpeCd9LGEpKTtpZih0aGlzLl9mb290 ZXIpYi5wdXNoKCROKCdkaXYnLHtjbGFzc05hbWU6J2RpYWxvZ19mb290ZXInfSx0 aGlzLl9mb3JtYXQodGhpcy5fZm9vdGVyKSkpO2I9JE4oJ2Rpdicse2NsYXNzTmFt ZTonZGlhbG9nX2NvbnRlbnQnfSxiKTtpZih0aGlzLl90aXRsZSl7dmFyIGc9JE4o J3NwYW4nLHRoaXMuX2Zvcm1hdCh0aGlzLl90aXRsZSkpO3ZhciBoPSROKCdoMics e2NsYXNzTmFtZTonZGlhbG9nX3RpdGxlJyxpZDondGl0bGVfJyt0aGlzLl91bmlx dWVJRH0sZyk7Q1NTLmNvbmRpdGlvbkNsYXNzKGgsJ3NlY3VyZScsdGhpcy5fc2Vj dXJlKTtiPVtoLGJdO31lbHNlIGI9W2JdO3RoaXMuX3JlbmRlckRpYWxvZyhiKTtD U1MuY29uZGl0aW9uQ2xhc3ModGhpcy5nZXRSb290KCksJ29taXREaWFsb2dGb290 ZXInLCFhLmxlbmd0aCk7aWYodGhpcy5fY2xpY2tCdXR0b25PbkVudGVySW5wdXRO YW1lJiZ0aGlzLl9jbGlja0J1dHRvbk9uRW50ZXImJmdlKHRoaXMuX2NsaWNrQnV0 dG9uT25FbnRlcklucHV0TmFtZSkpRXZlbnQubGlzdGVuKGdlKHRoaXMuX2NsaWNr QnV0dG9uT25FbnRlcklucHV0TmFtZSksJ2tleXByZXNzJyxmdW5jdGlvbihpKXtp ZihFdmVudC5nZXRLZXlDb2RlKGkpPT1LRVlTLlJFVFVSTil0aGlzLl9oYW5kbGVC dXR0b24odGhpcy5fY2xpY2tCdXR0b25PbkVudGVyKTtyZXR1cm4gdHJ1ZTt9LmJp bmQodGhpcykpO2Zvcih2YXIgZj0wO2Y8dGhpcy5fb25sb2FkX2hhbmRsZXJzLmxl bmd0aDsrK2YpdHJ5e3RoaXMuX29ubG9hZF9oYW5kbGVyc1tmXSgpO31jYXRjaChl KXt9dGhpcy5fb25sb2FkX2hhbmRsZXJzPVtdO31lbHNlIHRoaXMuc2hvd0xvYWRp bmcoKTt2YXIgYz0yKkRpYWxvZy5fQk9SREVSX1dJRFRIO2lmKERpYWxvZy5fdXNl Q1NTQm9yZGVycyljKz0yKkRpYWxvZy5fSEFMT19XSURUSDtpZih0aGlzLl9jb250 ZW50X3dpZHRoKXtjKz10aGlzLl9jb250ZW50X3dpZHRoO2lmKCF0aGlzLl9mdWxs X2JsZWVkKWMrPTIqRGlhbG9nLl9QQURESU5HX1dJRFRIO31lbHNlIGlmKHRoaXMu X3dpZGVfZGlhbG9nKXtjKz1EaWFsb2cuU0laRS5XSURFO31lbHNlIGMrPURpYWxv Zy5TSVpFLlNUQU5EQVJEO3RoaXMuX3BvcHVwLnN0eWxlLndpZHRoPWMrJ3B4Jzt9 LF91cGRhdGVCdXR0b25zOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX3Nob3dpbmcpcmV0 dXJuO3ZhciBiPXRoaXMuX2dldEJ1dHRvbkNvbnRlbnQoKTt2YXIgYz1udWxsO2lm KCF0aGlzLmdldFJvb3QoKSl0aGlzLl9idWlsZERpYWxvZygpO0NTUy5jb25kaXRp b25DbGFzcyh0aGlzLmdldFJvb3QoKSwnb21pdERpYWxvZ0Zvb3RlcicsIWIubGVu Z3RoKTtpZihiLmxlbmd0aCljPSROKCdkaXYnLHtjbGFzc05hbWU6J2RpYWxvZ19i dXR0b25zIGNsZWFyZml4J30sYik7dmFyIGQ9RE9NLnNjcnkodGhpcy5fY29udGVu dCwnZGl2LmRpYWxvZ19idXR0b25zJylbMF18fG51bGw7aWYoIWQpe2lmKCFjKXJl dHVybjt2YXIgYT10aGlzLmdldEJvZHkoKTtpZihhKURPTS5pbnNlcnRBZnRlcihh LGMpO31lbHNlIGlmKGMpe0RPTS5yZXBsYWNlKGQsYyk7fWVsc2UgRE9NLnJlbW92 ZShkKTt9LF9nZXRCdXR0b25Db250ZW50OmZ1bmN0aW9uKCl7dmFyIGI9W107aWYo KHRoaXMuX2J1dHRvbnMmJnRoaXMuX2J1dHRvbnMubGVuZ3RoPjApfHx0aGlzLl9i dXR0b25zX21lc3NhZ2Upe2lmKHRoaXMuX2J1dHRvbnNfbWVzc2FnZSliLnB1c2go JE4oJ2Rpdicse2NsYXNzTmFtZTonZGlhbG9nX2J1dHRvbnNfbXNnJ30sdGhpcy5f Zm9ybWF0KHRoaXMuX2J1dHRvbnNfbWVzc2FnZSkpKTtpZih0aGlzLl9idXR0b25z KWZvcih2YXIgZT0wO2U8dGhpcy5fYnV0dG9ucy5sZW5ndGg7ZSsrKXt2YXIgYT10 aGlzLl9idXR0b25zW2VdO3ZhciBjPSROKCdpbnB1dCcse3R5cGU6J2J1dHRvbics bmFtZTphLm5hbWV8fCcnLHZhbHVlOmEubGFiZWx9KTt2YXIgZD0kTignbGFiZWwn LHtjbGFzc05hbWU6J3VpQnV0dG9uIHVpQnV0dG9uTGFyZ2UgdWlCdXR0b25Db25m aXJtJ30sYyk7aWYoYS5jbGFzc05hbWUpe2EuY2xhc3NOYW1lLnNwbGl0KC9ccysv KS5lYWNoKGZ1bmN0aW9uKGYpe0NTUy5hZGRDbGFzcyhkLGYpO30pO2lmKENTUy5o YXNDbGFzcyhkLCdpbnB1dGF1eCcpKXtDU1MucmVtb3ZlQ2xhc3MoZCwnaW5wdXRh dXgnKTtDU1MucmVtb3ZlQ2xhc3MoZCwndWlCdXR0b25Db25maXJtJyk7fX1pZihh Lmljb24pRE9NLnByZXBlbmRDb250ZW50KGQsJE4oJ2ltZycse3NyYzphLmljb24s Y2xhc3NOYW1lOidpbWcgbXJzJ30pKTtFdmVudC5saXN0ZW4oYywnY2xpY2snLHRo aXMuX2hhbmRsZUJ1dHRvbi5iaW5kKHRoaXMsYS5uYW1lKSk7Yi5wdXNoKGQpO319 cmV0dXJuIGI7fSxfcmVuZGVyRGlhbG9nOmZ1bmN0aW9uKGIpe2lmKERpYWxvZy5k aWFsb2dTdGFjaz09PW51bGwpe0tleUV2ZW50Q29udHJvbGxlci5yZWdpc3Rlcktl eSgnRVNDQVBFJyxEaWFsb2cuX2hhbmRsZUVzY2FwZUtleSxEaWFsb2cuX2tleURv d25GaWx0ZXIpO29ubGVhdmVSZWdpc3RlcihEaWFsb2cuX3RlYXJEb3duKTtBcmJp dGVyLnN1YnNjcmliZSgncGFnZV90cmFuc2l0aW9uJyxEaWFsb2cuX3RlYXJEb3du KTt9aWYoIXRoaXMuX29iail0aGlzLl9idWlsZERpYWxvZygpO2lmKHRoaXMuX2Ns YXNzX25hbWUpQ1NTLmFkZENsYXNzKHRoaXMuX29iaix0aGlzLl9jbGFzc19uYW1l KTtDU1MuY29uZGl0aW9uQ2xhc3ModGhpcy5fb2JqLCdmdWxsX2JsZWVkJyx0aGlz Ll9mdWxsX2JsZWVkKTtpZih0eXBlb2YgYj09J3N0cmluZycpYj1IVE1MKGIpLnNl dERlZmVycmVkKHRoaXMuX2ltbWVkaWF0ZV9yZW5kZXJpbmchPT10cnVlKTtET00u c2V0Q29udGVudCh0aGlzLl9jb250ZW50LGIpO3RoaXMuX3Nob3dEaWFsb2coKTtp Zih0aGlzLl9hdXRvX2ZvY3VzKUZvcm0uZm9jdXNGaXJzdC5iaW5kKHRoaXMsdGhp cy5fY29udGVudCkuZGVmZXIoKTt2YXIgYT1WZWN0b3IyLmdldEVsZW1lbnREaW1l bnNpb25zKHRoaXMuX2NvbnRlbnQpLnkrVmVjdG9yMi5nZXRFbGVtZW50UG9zaXRp b24odGhpcy5fY29udGVudCkueTtEaWFsb2cuX2JvdHRvbXMucHVzaChhKTt0aGlz Ll9ib3R0b209YTtEaWFsb2cuX3VwZGF0ZU1heEJvdHRvbSgpO3JldHVybiB0aGlz O30sX2J1aWxkRGlhbG9nOmZ1bmN0aW9uKCl7dGhpcy5fb2JqPSROKCdkaXYnLHtj bGFzc05hbWU6J2dlbmVyaWNfZGlhbG9nJyx0YWJJbmRleDonMCd9KTt0aGlzLl9v Ymouc2V0QXR0cmlidXRlKCdyb2xlJywnYWxlcnRkaWFsb2cnKTt0aGlzLl9vYmou c2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsbGVkYnknLCd0aXRsZV8nK3RoaXMuX3Vu aXF1ZUlEKTt0aGlzLl9vYmouc3R5bGUuZGlzcGxheT0nbm9uZSc7RE9NLmdldFJv b3RFbGVtZW50KCkuYXBwZW5kQ2hpbGQodGhpcy5fb2JqKTtpZighdGhpcy5fcG9w dXApdGhpcy5fcG9wdXA9JE4oJ2Rpdicse2NsYXNzTmFtZTonZ2VuZXJpY19kaWFs b2dfcG9wdXAnfSk7dGhpcy5fcG9wdXAuc3R5bGUubGVmdD10aGlzLl9wb3B1cC5z dHlsZS50b3A9Jyc7dGhpcy5fb2JqLmFwcGVuZENoaWxkKHRoaXMuX3BvcHVwKTtp Zih1YS5pZSgpPDcmJiF0aGlzLl9zaGltKUJvb3Rsb2FkZXIubG9hZENvbXBvbmVu dHMoJ2lmcmFtZS1zaGltJyxmdW5jdGlvbigpe3RoaXMuX3NoaW09bmV3IElmcmFt ZVNoaW0odGhpcy5fcG9wdXApO30pO3RoaXMuX2J1aWxkRGlhbG9nQ29udGVudCgp O30sX3Nob3dEaWFsb2c6ZnVuY3Rpb24oKXtpZih0aGlzLl9tb2RhbClpZih0aGlz Ll9vdmVybGF5KXt0aGlzLl9vdmVybGF5LnN0eWxlLmRpc3BsYXk9Jyc7fWVsc2Ug dGhpcy5fYnVpbGRPdmVybGF5KCk7aWYodGhpcy5fb2JqJiZ0aGlzLl9vYmouc3R5 bGUuZGlzcGxheSl7dGhpcy5fb2JqLnN0eWxlLnZpc2liaWxpdHk9J2hpZGRlbic7 dGhpcy5fb2JqLnN0eWxlLmRpc3BsYXk9Jyc7dGhpcy5yZXNldERpYWxvZ1Bvc2l0 aW9uKCk7dGhpcy5fb2JqLnN0eWxlLnZpc2liaWxpdHk9Jyc7dGhpcy5fb2JqLmRp YWxvZz10aGlzO31lbHNlIHRoaXMucmVzZXREaWFsb2dQb3NpdGlvbigpO2NsZWFy SW50ZXJ2YWwodGhpcy5hY3RpdmVfaGlkaW5nKTt0aGlzLmFjdGl2ZV9oaWRpbmc9 c2V0SW50ZXJ2YWwodGhpcy5fYWN0aXZlUmVzaXplLmJpbmQodGhpcyksNTAwKTtB cmJpdGVyLmluZm9ybSgnbmV3X2xheWVyJyk7aWYoIURpYWxvZy5kaWFsb2dTdGFj aylEaWFsb2cuZGlhbG9nU3RhY2s9W107dmFyIGM9RGlhbG9nLmRpYWxvZ1N0YWNr O2lmKGMubGVuZ3RoKXt2YXIgYT1jW2MubGVuZ3RoLTFdO2lmKGEhPXRoaXMmJigh YS5faXNfc3RhY2thYmxlfHwoYS5fc2hvd19sb2FkaW5nJiZhLl9sb2FkaW5nX3dh c19zaG93bikpKWEuX2hpZGUoKTtmb3IodmFyIGI9Yy5sZW5ndGgtMTtiPj0wO2It LSlpZihjW2JdPT10aGlzKXtjLnNwbGljZShiLDEpO31lbHNlIGlmKCFjW2JdLl9z aG93bl93aGlsZV9zdGFja2VkKWNbYl0uX2hpZGUodHJ1ZSk7fWMucHVzaCh0aGlz KTtyZXR1cm4gdGhpczt9LF91cGRhdGVTaGltOmZ1bmN0aW9uKCl7cmV0dXJuIHRo aXMuX3NoaW0mJnRoaXMuX3NoaW0uc2hvdygpO30sX2FjdGl2ZVJlc2l6ZTpmdW5j dGlvbigpe2lmKHRoaXMubGFzdF9vZmZzZXRfaGVpZ2h0IT10aGlzLl9jb250ZW50 Lm9mZnNldEhlaWdodCl7dGhpcy5sYXN0X29mZnNldF9oZWlnaHQ9dGhpcy5fY29u dGVudC5vZmZzZXRIZWlnaHQ7dGhpcy5fdXBkYXRlU2hpbSgpO319LF9idWlsZERp YWxvZ0NvbnRlbnQ6ZnVuY3Rpb24oKXtDU1MuYWRkQ2xhc3ModGhpcy5fb2JqLCdw b3BfZGlhbG9nJyk7aWYoaW50bF9sb2NhbGVfaXNfcnRsKCkpQ1NTLmFkZENsYXNz KHRoaXMuX29iaiwncG9wX2RpYWxvZ19ydGwnKTt2YXIgYTtpZihEaWFsb2cuX3Vz ZUNTU0JvcmRlcnMpe2E9JzxkaXYgY2xhc3M9InBvcF9jb250YWluZXJfYWR2YW5j ZWQiPicrJzxkaXYgY2xhc3M9InBvcF9jb250ZW50IiBpZD0icG9wX2NvbnRlbnQi PjwvZGl2PicrJzwvZGl2Pic7fWVsc2UgYT0nPGRpdiBjbGFzcz0icG9wX2NvbnRh aW5lciI+JysnPGRpdiBjbGFzcz0icG9wX3ZlcnRpY2Fsc2xhYiI+PC9kaXY+Jysn PGRpdiBjbGFzcz0icG9wX2hvcml6b250YWxzbGFiIj48L2Rpdj4nKyc8ZGl2IGNs YXNzPSJwb3BfdG9wbGVmdCI+PC9kaXY+JysnPGRpdiBjbGFzcz0icG9wX3RvcHJp Z2h0Ij48L2Rpdj4nKyc8ZGl2IGNsYXNzPSJwb3BfYm90dG9tcmlnaHQiPjwvZGl2 PicrJzxkaXYgY2xhc3M9InBvcF9ib3R0b21sZWZ0Ij48L2Rpdj4nKyc8ZGl2IGNs YXNzPSJwb3BfY29udGVudCBwb3BfY29udGVudF9vbGQiIGlkPSJwb3BfY29udGVu dCI+PC9kaXY+JysnPC9kaXY+JztET00uc2V0Q29udGVudCh0aGlzLl9wb3B1cCxI VE1MKGEpKTt0aGlzLl9mcmFtZT1ET00uZmluZCh0aGlzLl9wb3B1cCwnZGl2LnBv cF9jb250ZW50Jyk7dGhpcy5fY29udGVudD10aGlzLl9mcmFtZTt9LF9idWlsZE92 ZXJsYXk6ZnVuY3Rpb24oKXt0aGlzLl9vdmVybGF5PSROKCdkaXYnLHtpZDonZ2Vu ZXJpY19kaWFsb2dfb3ZlcmxheSd9KTtpZih0aGlzLl9tb2RhbF9jbGFzcylDU1Mu YWRkQ2xhc3ModGhpcy5fb3ZlcmxheSx0aGlzLl9tb2RhbF9jbGFzcyk7aWYodGhp cy5fc2VtaV9tb2RhbCl7dmFyIGE9ZnVuY3Rpb24oYil7aWYoYi5nZXRUYXJnZXQo KT09dGhpcy5fb2JqfHxiLmdldFRhcmdldCgpPT10aGlzLl9vdmVybGF5KXRoaXMu aGlkZSgpO30uYmluZCh0aGlzKTtFdmVudC5saXN0ZW4odGhpcy5fb2JqLCdjbGlj aycsYSk7RXZlbnQubGlzdGVuKHRoaXMuX292ZXJsYXksJ2NsaWNrJyxhKTt9aWYo dWEuaWUoKTw3KXRoaXMuX292ZXJsYXkuc3R5bGUuaGVpZ2h0PVZlY3RvcjIuZ2V0 RG9jdW1lbnREaW1lbnNpb25zKCkueSsncHgnO29ubG9hZFJlZ2lzdGVyKGZ1bmN0 aW9uKCl7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLl9vdmVybGF5KTt9 LmJpbmQodGhpcykpO30scmVzZXREaWFsb2dQb3NpdGlvbjpmdW5jdGlvbigpe2lm KCF0aGlzLl9wb3B1cClyZXR1cm47dGhpcy5fcmVzZXREaWFsb2dPYmooKTt0aGlz Ll91cGRhdGVTaGltKCk7fSxfcmVzZXREaWFsb2dPYmo6ZnVuY3Rpb24oKXt2YXIg YT1ET00uZmluZCh0aGlzLl9wb3B1cCwnZGl2LnBvcF9jb250ZW50Jyk7dmFyIGQ9 VmVjdG9yMi5nZXRTY3JvbGxQb3NpdGlvbigpLnk7dmFyIGY9MjA7dmFyIGc9VmVj dG9yMi5nZXRWaWV3cG9ydERpbWVuc2lvbnMoKS55O3ZhciBiPVZlY3RvcjIuZ2V0 RWxlbWVudERpbWVuc2lvbnMoYSkueStmO3ZhciBlPWQrdGhpcy5fdG9wKydweCc7 aWYodGhpcy5fdG9wK2I+Zyl7dmFyIGM9TWF0aC5tYXgoZy1iLDApO2U9KChjLzIp K2QpKydweCc7fXRoaXMuX3BvcHVwLnN0eWxlLnRvcD1lO30sX2ZhZGVPdXQ6ZnVu Y3Rpb24oYil7aWYoIXRoaXMuX3BvcHVwKXJldHVybjt0cnl7YW5pbWF0aW9uKHRo aXMuX29iaikuZHVyYXRpb24oMCkuY2hlY2twb2ludCgpLnRvKCdvcGFjaXR5Jyww KS5oaWRlKCkuZHVyYXRpb24oMjUwKS5vbmRvbmUodGhpcy5faGlkZS5iaW5kKHRo aXMsYikpLmdvKCk7fWNhdGNoKGEpe3RoaXMuX2hpZGUoYik7fX0sX2hpZGU6ZnVu Y3Rpb24oZCl7aWYodGhpcy5fb2JqKXRoaXMuX29iai5zdHlsZS5kaXNwbGF5PSdu b25lJztpZih0aGlzLl9vdmVybGF5KWlmKGQpe3RoaXMuX292ZXJsYXkuc3R5bGUu ZGlzcGxheT0nbm9uZSc7fWVsc2V7RE9NLnJlbW92ZSh0aGlzLl9vdmVybGF5KTt0 aGlzLl9vdmVybGF5PW51bGw7fXRoaXMuX3VwZGF0ZVNoaW0oKTtpZih0aGlzLnRp bWVvdXQpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO3RoaXMudGltZW91dD1u dWxsO31pZih0aGlzLl9oaWRkZW5fb2JqZWN0cy5sZW5ndGgpe2Zvcih2YXIgYj0w LGM9dGhpcy5faGlkZGVuX29iamVjdHMubGVuZ3RoO2I8YztiKyspdGhpcy5faGlk ZGVuX29iamVjdHNbYl0uc3R5bGUudmlzaWJpbGl0eT0nJzt0aGlzLl9oaWRkZW5f b2JqZWN0cz1bXTt9Y2xlYXJJbnRlcnZhbCh0aGlzLmFjdGl2ZV9oaWRpbmcpO2lm KHRoaXMuX2JvdHRvbSl7dmFyIGE9RGlhbG9nLl9ib3R0b21zO2Euc3BsaWNlKGEu aW5kZXhPZih0aGlzLl9ib3R0b20pLDEpO0RpYWxvZy5fdXBkYXRlTWF4Qm90dG9t KCk7fWlmKGQpcmV0dXJuO3RoaXMuZGVzdHJveSgpO30sZGVzdHJveTpmdW5jdGlv bigpe2lmKERpYWxvZy5kaWFsb2dTdGFjayYmRGlhbG9nLmRpYWxvZ1N0YWNrLmxl bmd0aCl7dmFyIGI9RGlhbG9nLmRpYWxvZ1N0YWNrO2Zvcih2YXIgYT1iLmxlbmd0 aC0xO2E+PTA7YS0tKWlmKGJbYV09PXRoaXMpYi5zcGxpY2UoYSwxKTtpZihiLmxl bmd0aCliW2IubGVuZ3RoLTFdLl9zaG93RGlhbG9nKCk7fWlmKHRoaXMuX29iail7 RE9NLnJlbW92ZSh0aGlzLl9vYmopO3RoaXMuX29iaj1udWxsO3RoaXMuX3NoaW0m JnRoaXMuX3NoaW0uaGlkZSgpO3RoaXMuX3NoaW09bnVsbDt9aWYodGhpcy5fY2xv c2VfaGFuZGxlcil0aGlzLl9jbG9zZV9oYW5kbGVyKHtyZXR1cm5fZGF0YTp0aGlz Ll9yZXR1cm5fZGF0YX0pO30sX2hhbmRsZUJ1dHRvbjpmdW5jdGlvbihhKXtpZih0 eXBlb2YgYT09J3N0cmluZycpYT1EaWFsb2cuX2ZpbmRCdXR0b24odGhpcy5fYnV0 dG9ucyxhKTt2YXIgYj1EaWFsb2cuY2FsbF9vcl9ldmFsKGEsYS5oYW5kbGVyKTtp ZihiPT09ZmFsc2UpcmV0dXJuO2lmKGEubmFtZT09J2NhbmNlbCcpe3RoaXMuY2Fu Y2VsKCk7fWVsc2UgaWYoRGlhbG9nLmNhbGxfb3JfZXZhbCh0aGlzLHRoaXMuX2hh bmRsZXIse2J1dHRvbjphfSkhPT1mYWxzZSl0aGlzLmhpZGUoKTt9LF9zdWJtaXRG b3JtOmZ1bmN0aW9uKGQsZSxiKXt2YXIgYz10aGlzLmdldEZvcm1EYXRhKCk7aWYo YiljW2IubmFtZV09Yi5sYWJlbDtpZih0aGlzLl9leHRyYV9kYXRhKWNvcHlfcHJv cGVydGllcyhjLHRoaXMuX2V4dHJhX2RhdGEpO3ZhciBhPW5ldyBBc3luY1JlcXVl c3QoKS5zZXRVUkkoZSkuc2V0RGF0YShjKS5zZXRNZXRob2QoZCkuc2V0TmVjdGFy TW9kdWxlRGF0YVNhZmUodGhpcy5fY2F1c2FsX2VsZW0pLnNldFJlYWRPbmx5KGQ9 PSdHRVQnKTt0aGlzLnNldEFzeW5jKGEpO3JldHVybiBmYWxzZTt9LF9zZXRGcm9t TW9kZWw6ZnVuY3Rpb24oYyl7dmFyIGE9e307Y29weV9wcm9wZXJ0aWVzKGEsYyk7 aWYoYS5pbW1lZGlhdGVSZW5kZXJpbmcpe3RoaXMuc2V0SW1tZWRpYXRlUmVuZGVy aW5nKGEuaW1tZWRpYXRlUmVuZGVyaW5nKTtkZWxldGUgYS5pbW1lZGlhdGVSZW5k ZXJpbmc7fWZvcih2YXIgZCBpbiBhKXtpZihkPT0nb25sb2FkUmVnaXN0ZXInKXt0 aGlzLm9ubG9hZFJlZ2lzdGVyKGFbZF0pO2NvbnRpbnVlO312YXIgYj10aGlzWydz ZXQnK2Quc3Vic3RyKDAsMSkudG9VcHBlckNhc2UoKStkLnN1YnN0cigxKV07Yi5h cHBseSh0aGlzLCRBKGFbZF0pKTt9fSxfdXBkYXRlQm90dG9tOmZ1bmN0aW9uKCl7 dmFyIGE9VmVjdG9yMi5nZXRFbGVtZW50RGltZW5zaW9ucyh0aGlzLl9jb250ZW50 KS55K1ZlY3RvcjIuZ2V0RWxlbWVudFBvc2l0aW9uKHRoaXMuX2NvbnRlbnQpLnk7 RGlhbG9nLl9ib3R0b21zW0RpYWxvZy5fYm90dG9tcy5sZW5ndGgtMV09YTtEaWFs b2cuX3VwZGF0ZU1heEJvdHRvbSgpO319KTsKZnVuY3Rpb24gQXN5bmNSZXF1ZXN0 KHVyaSl7dmFyIGRpc3BhdGNoUmVzcG9uc2U9YmluZCh0aGlzLGZ1bmN0aW9uKGFz eW5jUmVzcG9uc2Upe3RyeXt0aGlzLmNsZWFyU3RhdHVzSW5kaWNhdG9yKCk7dGhp cy5fbWVhc3VyZVNhdmVkJiZ0aGlzLl9tZWFzdXJlU2F2ZWQoKTtpZih0aGlzLl9p c1ByZWZldGNoKXt0aGlzLl9pc1ByZWZldGNoPWZhbHNlO3JldHVybjt9aWYoIXRo aXMuaXNSZWxldmFudCgpKXtpbnZva2VFcnJvckhhbmRsZXIoMTAxMCk7cmV0dXJu O31pZih0aGlzLmluaXRpYWxIYW5kbGVyKGFzeW5jUmVzcG9uc2UpIT09ZmFsc2Up e2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKTthc3luY1Jlc3BvbnNlLmpzY2MmJmlu dm9rZV9jYWxsYmFja3MoW2FzeW5jUmVzcG9uc2UuanNjY10pO2lmKHRoaXMuaGFu ZGxlcil0cnl7dmFyIHN1cHByZXNzX29ubG9hZD10aGlzLmhhbmRsZXIoYXN5bmNS ZXNwb25zZSk7fWNhdGNoKGV4Y2VwdGlvbil7YXN5bmNSZXNwb25zZS5pc19sYXN0 JiZ0aGlzLmZpbmFsbHlIYW5kbGVyKGFzeW5jUmVzcG9uc2UpO3Rocm93IGV4Y2Vw dGlvbjt9YXN5bmNSZXNwb25zZS5pc19sYXN0JiZ0aGlzLmZpbmFsbHlIYW5kbGVy KGFzeW5jUmVzcG9uc2UpO2lmKHN1cHByZXNzX29ubG9hZCE9PUFzeW5jUmVxdWVz dC5zdXBwcmVzc09ubG9hZFRva2VuKXt2YXIgb25sb2FkPWFzeW5jUmVzcG9uc2Uu b25sb2FkO2lmKG9ubG9hZClmb3IodmFyIGlpPTA7aWk8b25sb2FkLmxlbmd0aDtp aSsrKXRyeXsobmV3IEZ1bmN0aW9uKG9ubG9hZFtpaV0pKS5hcHBseSh0aGlzKTt9 Y2F0Y2goZXhjZXB0aW9uKXt9aWYodGhpcy5saWQmJiFhc3luY1Jlc3BvbnNlLmlz UmVwbGF5KCkpQXJiaXRlci5pbmZvcm0oJ3R0aV9hamF4Jyx7czp0aGlzLmxpZCxk Olt0aGlzLl9zZW5kVGltZVN0YW1wfHwwLCh0aGlzLl9zZW5kVGltZVN0YW1wJiZ0 aGlzLl9yZXNwb25zZVRpbWUpPyh0aGlzLl9yZXNwb25zZVRpbWUtdGhpcy5fc2Vu ZFRpbWVTdGFtcCk6MF19LEFyYml0ZXIuQkVIQVZJT1JfRVZFTlQpO3ZhciBvbmFm dGVybG9hZD1hc3luY1Jlc3BvbnNlLm9uYWZ0ZXJsb2FkO2lmKG9uYWZ0ZXJsb2Fk KWZvcih2YXIgaWk9MDtpaTxvbmFmdGVybG9hZC5sZW5ndGg7aWkrKyl0cnl7KG5l dyBGdW5jdGlvbihvbmFmdGVybG9hZFtpaV0pKS5hcHBseSh0aGlzKTt9Y2F0Y2go ZXhjZXB0aW9uKXt9fXZhciBpbnZhbGlkYXRlX2NhY2hlPWFzeW5jUmVzcG9uc2Uu aW52YWxpZGF0ZV9jYWNoZTtpZighdGhpcy5nZXRPcHRpb24oJ3N1cHByZXNzQ2Fj aGVJbnZhbGlkYXRpb24nKSYmaW52YWxpZGF0ZV9jYWNoZSYmaW52YWxpZGF0ZV9j YWNoZS5sZW5ndGgpQXJiaXRlci5pbmZvcm0oQXJiaXRlci5QQUdFQ0FDSEVfSU5W QUxJREFURSxpbnZhbGlkYXRlX2NhY2hlKTt9aWYoYXN5bmNSZXNwb25zZS5jYWNo ZU9ic2VydmF0aW9uJiZ0eXBlb2YoVGFiQ29uc29sZUNhY2hlb2JzZXJ2ZXIpIT0n dW5kZWZpbmVkJyYmVGFiQ29uc29sZUNhY2hlb2JzZXJ2ZXIuaW5zdGFuY2UpVGFi Q29uc29sZUNhY2hlb2JzZXJ2ZXIuZ2V0SW5zdGFuY2UoKS5hZGRBc3luY09ic2Vy dmF0aW9uKGFzeW5jUmVzcG9uc2UuY2FjaGVPYnNlcnZhdGlvbik7fWNhdGNoKGV4 Y2VwdGlvbil7fX0pO3ZhciByZXBsYXlSZXNwb25zZXM9YmluZCh0aGlzLGZ1bmN0 aW9uKCl7aWYoaXNfZW1wdHkodGhpcy5fYXN5bmNSZXNwb25zZXMpKXJldHVybjt0 aGlzLnNldE5ld1NlcmlhbCgpO2Zvcih2YXIgaWk9MDtpaTx0aGlzLl9hc3luY1Jl c3BvbnNlcy5sZW5ndGg7KytpaSl7dmFyIHI9dGhpcy5fYXN5bmNSZXNwb25zZXNb aWldO2ludm9rZVJlc3BvbnNlSGFuZGxlcihyLHRydWUpO319KTt2YXIgZGlzcGF0 Y2hFcnJvclJlc3BvbnNlPWJpbmQodGhpcyxmdW5jdGlvbihhc3luY1Jlc3BvbnNl LGlzVHJhbnNwb3J0KXt0cnl7dGhpcy5jbGVhclN0YXR1c0luZGljYXRvcigpO3Zh ciBhc3luY19lcnJvcj1hc3luY1Jlc3BvbnNlLmdldEVycm9yKCk7aWYodGhpcy5f c2VuZFRpbWVTdGFtcCl7dmFyIF9kdXJhdGlvbj0oK25ldyBEYXRlKCkpLXRoaXMu X3NlbmRUaW1lU3RhbXA7dmFyIHhmYl9pcD10aGlzLl94RmJTZXJ2ZXJ8fCctJzth c3luY1Jlc3BvbnNlLmxvZ0Vycm9yKCdhc3luY19lcnJvcicsX2R1cmF0aW9uKyc6 Jyt4ZmJfaXApO31lbHNlIGFzeW5jUmVzcG9uc2UubG9nRXJyb3IoJ2FzeW5jX2Vy cm9yJyk7aWYoKCF0aGlzLmlzUmVsZXZhbnQoKSl8fGFzeW5jX2Vycm9yPT09MTAx MClyZXR1cm47aWYoYXN5bmNfZXJyb3I9PTEzNTcwMDh8fGFzeW5jX2Vycm9yPT0x MzU3MDA3fHxhc3luY19lcnJvcj09MTQ0MjAwMnx8YXN5bmNfZXJyb3I9PTEzNTcw MDEpe3ZhciBpc19jb25maXJtYXRpb249ZmFsc2U7aWYoYXN5bmNfZXJyb3I9PTEz NTcwMDh8fGFzeW5jX2Vycm9yPT0xMzU3MDA3KWlzX2NvbmZpcm1hdGlvbj10cnVl O3ZhciBwYXlsb2FkPWFzeW5jUmVzcG9uc2UuZ2V0UGF5bG9hZCgpO3RoaXMuX2Rp c3BsYXlTZXJ2ZXJEaWFsb2cocGF5bG9hZC5fX2RpYWxvZyxpc19jb25maXJtYXRp b24pO31lbHNlIGlmKHRoaXMuaW5pdGlhbEhhbmRsZXIoYXN5bmNSZXNwb25zZSkh PT1mYWxzZSl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO3RyeXtpZihpc1RyYW5z cG9ydCl7dGhpcy50cmFuc3BvcnRFcnJvckhhbmRsZXIoYXN5bmNSZXNwb25zZSk7 fWVsc2UgdGhpcy5lcnJvckhhbmRsZXIoYXN5bmNSZXNwb25zZSk7fWNhdGNoKGV4 Y2VwdGlvbil7dGhpcy5maW5hbGx5SGFuZGxlcihhc3luY1Jlc3BvbnNlKTt0aHJv dyBleGNlcHRpb247fXRoaXMuZmluYWxseUhhbmRsZXIoYXN5bmNSZXNwb25zZSk7 fX1jYXRjaChleGNlcHRpb24pe319KTt2YXIgX2ludGVycHJldFRyYW5zcG9ydFJl c3BvbnNlPWJpbmQodGhpcyxmdW5jdGlvbigpe2lmKHRoaXMuZ2V0T3B0aW9uKCdz dXBwcmVzc0V2YWx1YXRpb24nKSl7dmFyIHI9bmV3IEFzeW5jUmVzcG9uc2UodGhp cyx0aGlzLnRyYW5zcG9ydCk7cmV0dXJuIHthc3luY1Jlc3BvbnNlOnJ9O312YXIg X3NlbmRFcnJvcj1mdW5jdGlvbihwLGVycm9yX2NvZGUsc3RyKXtpZighd2luZG93 LnNlbmRfZXJyb3Jfc2lnbmFsKXJldHVybjtpZih0aGlzLl94RmJTZXJ2ZXIpe2Vy cm9yX2NvZGU9JzEwMDhfJytlcnJvcl9jb2RlO31lbHNlIGVycm9yX2NvZGU9JzEw MTJfJytlcnJvcl9jb2RlO3NlbmRfZXJyb3Jfc2lnbmFsKCdhc3luY194cG9ydF9y ZXNwJyxlcnJvcl9jb2RlKyc6JysodGhpcy5feEZiU2VydmVyfHwnLScpKyc6Jytw LmdldFVSSSgpKyc6JytzdHIubGVuZ3RoKyc6JytzdHIuc3Vic3RyKDAsMTYwMCkp O307dmFyIHNoaWVsZD0iZm9yICg7Oyk7Ijt2YXIgc2hpZWxkbGVuPXNoaWVsZC5s ZW5ndGg7dmFyIHRleHQ9dGhpcy50cmFuc3BvcnQucmVzcG9uc2VUZXh0O2lmKHRl eHQubGVuZ3RoPD1zaGllbGRsZW4pe19zZW5kRXJyb3IodGhpcywnZW1wdHknLHRl eHQpO3JldHVybiB7dHJhbnNwb3J0RXJyb3I6J1Jlc3BvbnNlIHRvbyBzaG9ydCBv biBhc3luYyB0byAnK3RoaXMuZ2V0VVJJKCl9O312YXIgb2Zmc2V0PTA7d2hpbGUo dGV4dC5jaGFyQXQob2Zmc2V0KT09IiAifHx0ZXh0LmNoYXJBdChvZmZzZXQpPT0i XG4iKW9mZnNldCsrO29mZnNldCYmdGV4dC5zdWJzdHJpbmcob2Zmc2V0LG9mZnNl dCtzaGllbGRsZW4pPT1zaGllbGQ7dmFyIHNhZmVSZXNwb25zZT10ZXh0LnN1YnN0 cmluZyhvZmZzZXQrc2hpZWxkbGVuKTt0cnl7dmFyIHJlc3BvbnNlPWV2YWwoJygn K3NhZmVSZXNwb25zZSsnKScpO31jYXRjaChleGNlcHRpb24pe19zZW5kRXJyb3Io dGhpcywnZXhjZXAnLHRleHQpO3JldHVybiB7dHJhbnNwb3J0RXJyb3I6J2V2YWwo KSBmYWlsZWQgb24gYXN5bmMgdG8gJyt0aGlzLmdldFVSSSgpfTt9cmV0dXJuIGlu dGVycHJldFJlc3BvbnNlKHJlc3BvbnNlKTt9KTt2YXIgaW50ZXJwcmV0UmVzcG9u c2U9YmluZCh0aGlzLGZ1bmN0aW9uKHJlc3BvbnNlKXtpZihyZXNwb25zZS5yZWRp cmVjdClyZXR1cm4ge3JlZGlyZWN0OnJlc3BvbnNlLnJlZGlyZWN0fTt2YXIgcj1u ZXcgQXN5bmNSZXNwb25zZSh0aGlzKTtpZihyZXNwb25zZS5fX2FyIT0xKXtyLnBh eWxvYWQ9cmVzcG9uc2U7fWVsc2V7Y29weV9wcm9wZXJ0aWVzKHIscmVzcG9uc2Up O2lmKHJlc3BvbnNlLnRwbHRzKWlmKHdpbmRvdy5EeW5hVGVtcGxhdGUpRHluYVRl bXBsYXRlLnJlZ2lzdGVyVGVtcGxhdGVzKHJlc3BvbnNlLnRwbHRzKTt9cmV0dXJu IHthc3luY1Jlc3BvbnNlOnJ9O30pO3ZhciBpbnZva2VSZXNwb25zZUhhbmRsZXI9 YmluZCh0aGlzLGZ1bmN0aW9uKGludGVycCxpc19yZXBsYXkpe2lmKHR5cGVvZihp bnRlcnAucmVkaXJlY3QpIT0ndW5kZWZpbmVkJyl7KGZ1bmN0aW9uKCl7dGhpcy5z ZXRVUkkoaW50ZXJwLnJlZGlyZWN0KS5zZW5kKCk7fSkuYmluZCh0aGlzKS5kZWZl cigpO3JldHVybjt9aWYodGhpcy5oYW5kbGVyfHx0aGlzLmVycm9ySGFuZGxlcnx8 dGhpcy50cmFuc3BvcnRFcnJvckhhbmRsZXIpaWYodHlwZW9mKGludGVycC5hc3lu Y1Jlc3BvbnNlKSE9J3VuZGVmaW5lZCcpe3ZhciByPWludGVycC5hc3luY1Jlc3Bv bnNlO3Iuc2V0UmVwbGF5KCEhaXNfcmVwbGF5KTtpZighdGhpcy5pc1JlbGV2YW50 KCkpe2ludm9rZUVycm9ySGFuZGxlcigxMDEwKTtyZXR1cm47fWlmKHIuaW5saW5l anMpZXZhbF9nbG9iYWwoci5pbmxpbmVqcyk7aWYoci5saWQpe3RoaXMuX3Jlc3Bv bnNlVGltZT0oK25ldyBEYXRlKCkpO2lmKHdpbmRvdy5DYXZhbHJ5TG9nZ2VyKXRo aXMuY2F2YWxyeT1DYXZhbHJ5TG9nZ2VyLmdldEluc3RhbmNlKHIubGlkKTt0aGlz LmxpZD1yLmxpZDt9aWYoci5nZXRFcnJvcigpJiYhci5nZXRFcnJvcklzV2Fybmlu ZygpKXt2YXIgZm49ZGlzcGF0Y2hFcnJvclJlc3BvbnNlO31lbHNle3ZhciBmbj1k aXNwYXRjaFJlc3BvbnNlO2lmKHRoaXMuX3JlcGxheWFibGUmJiFpc19yZXBsYXkm JiFyLmRvbnRSZXBsYXkpe3RoaXMuX2FzeW5jUmVzcG9uc2VzPXRoaXMuX2FzeW5j UmVzcG9uc2VzfHxbXTt0aGlzLl9hc3luY1Jlc3BvbnNlcy5wdXNoKGludGVycCk7 fX1Cb290bG9hZGVyLnNldFJlc291cmNlTWFwKHIucmVzb3VyY2VfbWFwKTtpZihy LmJvb3Rsb2FkYWJsZSlCb290bG9hZGVyLmVuYWJsZUJvb3Rsb2FkKHIuYm9vdGxv YWRhYmxlKTtmbj1mbi5zaGllbGQobnVsbCxyKTtmbj1mbi5kZWZlci5iaW5kKGZu KTt2YXIgaXNfdHJhbnNpdGlvbmFsPWZhbHNlO2lmKHRoaXMucHJlQm9vdGxvYWRI YW5kbGVyKWlzX3RyYW5zaXRpb25hbD10aGlzLnByZUJvb3Rsb2FkSGFuZGxlcihy KTtyLmNzcz1yLmNzc3x8W107ci5qcz1yLmpzfHxbXTtCb290bG9hZGVyLmxvYWRS ZXNvdXJjZXMoci5jc3MuY29uY2F0KHIuanMpLGZuLGlzX3RyYW5zaXRpb25hbCx0 aGlzLmdldFVSSSgpKTt9ZWxzZSBpZih0eXBlb2YoaW50ZXJwLnRyYW5zcG9ydEVy cm9yKSE9J3VuZGVmaW5lZCcpe2lmKHRoaXMuX3hGYlNlcnZlcil7aW52b2tlRXJy b3JIYW5kbGVyKDEwMDgpO31lbHNlIGludm9rZUVycm9ySGFuZGxlcigxMDEyKTt9 ZWxzZSBpbnZva2VFcnJvckhhbmRsZXIoMTAwNyk7fSk7dmFyIGludm9rZUVycm9y SGFuZGxlcj1iaW5kKHRoaXMsZnVuY3Rpb24oZXhwbGljaXRFcnJvcil7dHJ5e2lm KCF3aW5kb3cubG9hZGVkJiYhdGhpcy5nZXRPcHRpb24oJ2hhbmRsZUVycm9yQWZ0 ZXJVbmxvYWQnKSlyZXR1cm47fWNhdGNoKGV4KXtyZXR1cm47fXZhciByPW5ldyBB c3luY1Jlc3BvbnNlKHRoaXMpO3ZhciBlcnI7dHJ5e2Vycj1leHBsaWNpdEVycm9y fHx0aGlzLnRyYW5zcG9ydC5zdGF0dXN8fDEwMDQ7fWNhdGNoKGV4KXtlcnI9MTAw NTt9aWYodGhpcy5fcmVxdWVzdEFib3J0ZWQpZXJyPTEwMTE7dHJ5e2lmKHRoaXMu cmVzcG9uc2VUZXh0PT0nJyllcnI9MTAwMjt9Y2F0Y2goaWdub3JlKXt9aWYodGhp cy50cmFuc3BvcnRFcnJvckhhbmRsZXIpe3ZhciBkZXNjLHN1bW1hcnk7dmFyIHNp bGVudD10cnVlO2lmKGZhbHNlPT09bmF2aWdhdG9yLm9uTGluZSl7c3VtbWFyeT1f dHgoIk5vIE5ldHdvcmsgQ29ubmVjdGlvbiIpO2Rlc2M9X3R4KCJZb3VyIGJyb3dz ZXIgYXBwZWFycyB0byBiZSBvZmZsaW5lLiBQbGVhc2UgY2hlY2sgeW91ciBpbnRl cm5ldCBjb25uZWN0aW9uIGFuZCB0cnkgYWdhaW4uIik7ZXJyPTEwMDY7fWVsc2Ug aWYoZXJyPj0zMDAmJmVycjw9Mzk5KXtzdW1tYXJ5PV90eCgiUmVkaXJlY3Rpb24i KTtkZXNjPV90eCgiWW91ciBhY2Nlc3MgdG8gRmFjZWJvb2sgd2FzIHJlZGlyZWN0 ZWQgb3IgYmxvY2tlZCBieSBhIHRoaXJkIHBhcnR5IGF0IHRoaXMgdGltZSwgcGxl YXNlIGNvbnRhY3QgeW91ciBJU1Agb3IgcmVsb2FkLiAiKTtyZWRpcl91cmw9dGhp cy50cmFuc3BvcnQuZ2V0UmVzcG9uc2VIZWFkZXIoIkxvY2F0aW9uIik7aWYocmVk aXJfdXJsKWdvVVJJKHJlZGlyX3VybCx0cnVlKTtzaWxlbnQ9dHJ1ZTt9ZWxzZXtz dW1tYXJ5PV90eCgiT29wcyEiKTtkZXNjPV90eCgiU29tZXRoaW5nIHdlbnQgd3Jv bmcuIFdlJ3JlIHdvcmtpbmcgb24gZ2V0dGluZyB0aGlzIGZpeGVkIGFzIHNvb24g YXMgd2UgY2FuLiBZb3UgbWF5IGJlIGFibGUgdG8gdHJ5IGFnYWluLiIpO30hdGhp cy5nZXRPcHRpb24oJ3N1cHByZXNzRXJyb3JBbGVydHMnKTtjb3B5X3Byb3BlcnRp ZXMocix7ZXJyb3I6ZXJyLGVycm9yU3VtbWFyeTpzdW1tYXJ5LGVycm9yRGVzY3Jp cHRpb246ZGVzYyxzaWxlbnRFcnJvcjpzaWxlbnR9KTtkaXNwYXRjaEVycm9yUmVz cG9uc2Uocix0cnVlKTt9fSk7dmFyIGhhbmRsZVJlc3BvbnNlPWZ1bmN0aW9uKHJl c3BvbnNlKXt2YXIgYXN5bmNSZXNwb25zZT10aGlzLmludGVycHJldFJlc3BvbnNl KHJlc3BvbnNlKTt0aGlzLmludm9rZVJlc3BvbnNlSGFuZGxlcihhc3luY1Jlc3Bv bnNlKTt9O3ZhciBvblN0YXRlQ2hhbmdlPWZ1bmN0aW9uKCl7dHJ5e2lmKHRoaXMu dHJhbnNwb3J0LnJlYWR5U3RhdGU9PTQpe0FzeW5jUmVxdWVzdC5faW5mbGlnaHRQ dXJnZSgpO3RyeXtpZih0eXBlb2YodGhpcy50cmFuc3BvcnQuZ2V0UmVzcG9uc2VI ZWFkZXIpIT0ndW5kZWZpbmVkJyYmdGhpcy50cmFuc3BvcnQuZ2V0UmVzcG9uc2VI ZWFkZXIoJ1gtRkItU2VydmVyJykpdGhpcy5feEZiU2VydmVyPXRoaXMudHJhbnNw b3J0LmdldFJlc3BvbnNlSGVhZGVyKCdYLUZCLVNlcnZlcicpO31jYXRjaChleCl7 fWlmKHRoaXMudHJhbnNwb3J0LnN0YXR1cz49MjAwJiZ0aGlzLnRyYW5zcG9ydC5z dGF0dXM8MzAwKXtpbnZva2VSZXNwb25zZUhhbmRsZXIoX2ludGVycHJldFRyYW5z cG9ydFJlc3BvbnNlKCkpO31lbHNlIGlmKHVhLnNhZmFyaSgpJiYodHlwZW9mKHRo aXMudHJhbnNwb3J0LnN0YXR1cyk9PSd1bmRlZmluZWQnKSl7aW52b2tlRXJyb3JI YW5kbGVyKDEwMDIpO31lbHNlIGlmKHdpbmRvdy5zZW5kX2Vycm9yX3NpZ25hbCYm d2luZG93LkVudiYmd2luZG93LkVudi5yZXRyeV9hamF4X29uX25ldHdvcmtfZXJy b3ImJnRoaXMudHJhbnNwb3J0LnN0YXR1cyBpbiB7MDoxLDEyMDI5OjEsMTIwMzA6 MSwxMjAzMToxLDEyMTUyOjF9JiZ0aGlzLnJlbWFpbmluZ1JldHJpZXM+MCl7LS10 aGlzLnJlbWFpbmluZ1JldHJpZXM7ZGVsZXRlIHRoaXMudHJhbnNwb3J0O3RoaXMu c2VuZCh0cnVlKTtyZXR1cm47fWVsc2UgaW52b2tlRXJyb3JIYW5kbGVyKCk7aWYo dGhpcy5nZXRPcHRpb24oJ2FzeW5jaHJvbm91cycpIT09ZmFsc2UpZGVsZXRlIHRo aXMudHJhbnNwb3J0O319Y2F0Y2goZXhjZXB0aW9uKXt0cnl7aWYoIXdpbmRvdy5s b2FkZWQpcmV0dXJuO31jYXRjaChleCl7cmV0dXJuO31kZWxldGUgdGhpcy50cmFu c3BvcnQ7aWYodGhpcy5yZW1haW5pbmdSZXRyaWVzPjApey0tdGhpcy5yZW1haW5p bmdSZXRyaWVzO3RoaXMuc2VuZCh0cnVlKTt9ZWxzZXshdGhpcy5nZXRPcHRpb24o J3N1cHByZXNzRXJyb3JBbGVydHMnKTtpZih3aW5kb3cuc2VuZF9lcnJvcl9zaWdu YWwpc2VuZF9lcnJvcl9zaWduYWwoJ2FzeW5jX3hwb3J0X3Jlc3AnLCcxMDA3Oicr KHRoaXMuX3hGYlNlcnZlcnx8Jy0nKSsnOicrdGhpcy5nZXRVUkkoKSsnOicrZXhj ZXB0aW9uLm1lc3NhZ2UpO2ludm9rZUVycm9ySGFuZGxlcigxMDA3KTt9fX07dmFy IG9uSlNPTlBSZXNwb25zZT1mdW5jdGlvbihkYXRhLG1vcmVfY2h1bmtlZF9yZXNw b25zZSl7dmFyIGlzX2ZpcnN0PSh0aGlzLmlzX2ZpcnN0PT09dW5kZWZpbmVkKTt0 aGlzLmlzX2ZpcnN0PWlzX2ZpcnN0O2lmKHRoaXMudHJhbnNwb3J0SWZyYW1lJiYh bW9yZV9jaHVua2VkX3Jlc3BvbnNlKShmdW5jdGlvbih4KXtkb2N1bWVudC5ib2R5 LnJlbW92ZUNoaWxkKHgpO30pLmJpbmQobnVsbCx0aGlzLnRyYW5zcG9ydElmcmFt ZSkuZGVmZXIoKTtpZih1YS5pZSgpPj05JiZ3aW5kb3cuSlNPTilkYXRhPXdpbmRv dy5KU09OLnBhcnNlKHdpbmRvdy5KU09OLnN0cmluZ2lmeShkYXRhKSk7dmFyIHI9 dGhpcy5pbnRlcnByZXRSZXNwb25zZShkYXRhKTtyLmFzeW5jUmVzcG9uc2UuaXNf Zmlyc3Q9aXNfZmlyc3Q7ci5hc3luY1Jlc3BvbnNlLmlzX2xhc3Q9IW1vcmVfY2h1 bmtlZF9yZXNwb25zZTt0aGlzLmludm9rZVJlc3BvbnNlSGFuZGxlcihyKTtyZXR1 cm4gbW9yZV9jaHVua2VkX3Jlc3BvbnNlO307Y29weV9wcm9wZXJ0aWVzKHRoaXMs e29uc3RhdGVjaGFuZ2U6b25TdGF0ZUNoYW5nZSxvbmpzb25wcmVzcG9uc2U6b25K U09OUFJlc3BvbnNlLHJlcGxheVJlc3BvbnNlczpyZXBsYXlSZXNwb25zZXMsaW52 b2tlUmVzcG9uc2VIYW5kbGVyOmludm9rZVJlc3BvbnNlSGFuZGxlcixpbnRlcnBy ZXRSZXNwb25zZTppbnRlcnByZXRSZXNwb25zZSxoYW5kbGVSZXNwb25zZTpoYW5k bGVSZXNwb25zZSx0cmFuc3BvcnQ6bnVsbCxtZXRob2Q6J1BPU1QnLHVyaTonJyx0 aW1lb3V0Om51bGwsdGltZXI6bnVsbCxpbml0aWFsSGFuZGxlcjpiYWdvZmhvbGRp bmcsaGFuZGxlcjpudWxsLGVycm9ySGFuZGxlcjpudWxsLHRyYW5zcG9ydEVycm9y SGFuZGxlcjpudWxsLHRpbWVvdXRIYW5kbGVyOm51bGwsZmluYWxseUhhbmRsZXI6 YmFnb2Zob2xkaW5nLHNlcnZlckRpYWxvZ0NhbmNlbEhhbmRsZXI6YmFnb2Zob2xk aW5nLHJlbGF0aXZlVG86bnVsbCxzdGF0dXNFbGVtZW50Om51bGwsc3RhdHVzQ2xh c3M6JycsZGF0YTp7fSxjb250ZXh0Ont9LHJlYWRPbmx5OmZhbHNlLHdyaXRlUmVx dWlyZWRQYXJhbXM6Wydwb3N0X2Zvcm1faWQnXSxyZW1haW5pbmdSZXRyaWVzOjAs b3B0aW9uOnthc3luY2hyb25vdXM6dHJ1ZSxzdXBwcmVzc0NhY2hlSW52YWxpZGF0 aW9uOmZhbHNlLHN1cHByZXNzRXJyb3JIYW5kbGVyV2FybmluZzpmYWxzZSxzdXBw cmVzc0V2YWx1YXRpb246ZmFsc2Usc3VwcHJlc3NFcnJvckFsZXJ0czpmYWxzZSxy ZXRyaWVzOjAsanNvbnA6ZmFsc2UsYnVuZGxlOmZhbHNlLHVzZUlmcmFtZVRyYW5z cG9ydDpmYWxzZSx0ZmJFbmRwb2ludDp0cnVlLGhhbmRsZUVycm9yQWZ0ZXJVbmxv YWQ6ZmFsc2V9LF9yZXBsYXlhYmxlOnVuZGVmaW5lZCxfcmVwbGF5S2V5OicnLF9p c1ByZWZldGNoOmZhbHNlfSk7dGhpcy5lcnJvckhhbmRsZXI9QXN5bmNSZXNwb25z ZS5kZWZhdWx0RXJyb3JIYW5kbGVyO3RoaXMudHJhbnNwb3J0RXJyb3JIYW5kbGVy PWJpbmQodGhpcywnZXJyb3JIYW5kbGVyJyk7aWYodXJpIT11bmRlZmluZWQpdGhp cy5zZXRVUkkodXJpKTtyZXR1cm4gdGhpczt9QXJiaXRlci5zdWJzY3JpYmUoInBh Z2VfdHJhbnNpdGlvbiIsZnVuY3Rpb24oYixhKXtBc3luY1JlcXVlc3QuX2lkX3Ro cmVzaG9sZD1hLmlkO30pO2NvcHlfcHJvcGVydGllcyhBc3luY1JlcXVlc3Qse3Jl Y2VpdmVKU09OUFJlc3BvbnNlOmZ1bmN0aW9uKGIsYSxjKXtpZih0aGlzLl9KU09O UFJlY2VpdmVyc1tiXSl7aWYoIXRoaXMuX0pTT05QUmVjZWl2ZXJzW2JdKGEsYykp ZGVsZXRlIHRoaXMuX0pTT05QUmVjZWl2ZXJzW2JdO31lbHNlIGlmKHdpbmRvdy5z ZW5kX2Vycm9yX3NpZ25hbCYmIWMpe3ZhciBkPShhLnBheWxvYWQmJmEucGF5bG9h ZC51cmkpfHwnJztzZW5kX2Vycm9yX3NpZ25hbCgnanNfdGltZW91dF9hbmRfZXhj ZXB0aW9uJywnMDAwMDI6V3JvbmdTZXNzaW9uSUQ6ZXJyb3I6JytiKyc6JytkKTt9 fSxfaGFzQnVuZGxlZFJlcXVlc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gQXN5bmNSZXF1 ZXN0Ll9hbGxCdW5kbGVkUmVxdWVzdHMubGVuZ3RoPjA7fSxzdGFzaEJ1bmRsZWRS ZXF1ZXN0OmZ1bmN0aW9uKCl7dmFyIGE9QXN5bmNSZXF1ZXN0Ll9hbGxCdW5kbGVk UmVxdWVzdHM7QXN5bmNSZXF1ZXN0Ll9hbGxCdW5kbGVkUmVxdWVzdHM9W107cmV0 dXJuIGE7fSxzZXRCdW5kbGVkUmVxdWVzdFByb3BlcnRpZXM6ZnVuY3Rpb24oYil7 dmFyIGM9bnVsbDtpZihiLnN0YXNoZWRSZXF1ZXN0cylBc3luY1JlcXVlc3QuX2Fs bEJ1bmRsZWRSZXF1ZXN0cz1Bc3luY1JlcXVlc3QuX2FsbEJ1bmRsZWRSZXF1ZXN0 cy5jb25jYXQoYi5zdGFzaGVkUmVxdWVzdHMpO2lmKCFBc3luY1JlcXVlc3QuX2hh c0J1bmRsZWRSZXF1ZXN0KCkpe3ZhciBhPWIuY2FsbGJhY2s7YSYmYSgpO31lbHNl e2NvcHlfcHJvcGVydGllcyhBc3luY1JlcXVlc3QuX2J1bmRsZWRSZXF1ZXN0UHJv cGVydGllcyxiKTtpZihiLnN0YXJ0X2ltbWVkaWF0ZWx5KWM9QXN5bmNSZXF1ZXN0 Ll9zZW5kQnVuZGxlZFJlcXVlc3RzKCk7fXJldHVybiBjO30sX2J1bmRsZVJlcXVl c3Q6ZnVuY3Rpb24oYil7aWYoYi5nZXRPcHRpb24oJ2pzb25wJyl8fGIuZ2V0T3B0 aW9uKCd1c2VJZnJhbWVUcmFuc3BvcnQnKSl7Yi5zZXRPcHRpb24oJ2J1bmRsZScs ZmFsc2UpO3JldHVybiBmYWxzZTt9ZWxzZSBpZighYi51cmkuaXNGYWNlYm9va1VS SSgpKXtiLnNldE9wdGlvbignYnVuZGxlJyxmYWxzZSk7cmV0dXJuIGZhbHNlO31l bHNlIGlmKCFiLmdldE9wdGlvbignYXN5bmNocm9ub3VzJykpe2Iuc2V0T3B0aW9u KCdidW5kbGUnLGZhbHNlKTtyZXR1cm4gZmFsc2U7fXZhciBhPWIudXJpLmdldFBh dGgoKTtpZighQXN5bmNSZXF1ZXN0Ll9idW5kbGVUaW1lcilBc3luY1JlcXVlc3Qu X2J1bmRsZVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtBc3luY1JlcXVlc3Qu X3NlbmRCdW5kbGVkUmVxdWVzdHMoKTt9LDApO0FzeW5jUmVxdWVzdC5fYWxsQnVu ZGxlZFJlcXVlc3RzLnB1c2goW2EsYl0pO3JldHVybiB0cnVlO30sX3NlbmRCdW5k bGVkUmVxdWVzdHM6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoQXN5bmNSZXF1ZXN0 Ll9idW5kbGVUaW1lcik7QXN5bmNSZXF1ZXN0Ll9idW5kbGVUaW1lcj1udWxsO3Zh ciBhPUFzeW5jUmVxdWVzdC5fYWxsQnVuZGxlZFJlcXVlc3RzO0FzeW5jUmVxdWVz dC5fYWxsQnVuZGxlZFJlcXVlc3RzPVtdO3ZhciBlPXt9O2NvcHlfcHJvcGVydGll cyhlLEFzeW5jUmVxdWVzdC5fYnVuZGxlZFJlcXVlc3RQcm9wZXJ0aWVzKTtBc3lu Y1JlcXVlc3QuX2J1bmRsZWRSZXF1ZXN0UHJvcGVydGllcz17fTtpZihpc19lbXB0 eShlKSYmYS5sZW5ndGg9PTEpe3ZhciBnPWFbMF1bMV07Zy5zZXRPcHRpb24oJ2J1 bmRsZScsZmFsc2UpLnNlbmQoKTtyZXR1cm4gZzt9dmFyIGQ9ZnVuY3Rpb24oKXtl LmNhbGxiYWNrJiZlLmNhbGxiYWNrKCk7fTtpZihhLmxlbmd0aD09PTApe2QoKTty ZXR1cm4gbnVsbDt9dmFyIGI9W107Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKysp Yi5wdXNoKFthW2NdWzBdLFVSSS5pbXBsb2RlUXVlcnkoYVtjXVsxXS5kYXRhKV0p O3ZhciBmPXtkYXRhOmJ9O2lmKGUuZXh0cmFfZGF0YSljb3B5X3Byb3BlcnRpZXMo ZixlLmV4dHJhX2RhdGEpO3ZhciBnPW5ldyBBc3luY1JlcXVlc3QoKTtnLnNldFVS SSgnL2FqYXgvcHJveHkucGhwJykuc2V0RGF0YShmKS5zZXRNZXRob2QoJ1BPU1Qn KS5zZXRJbml0aWFsSGFuZGxlcihlLm9uSW5pdGlhbFJlc3BvbnNlfHxiYWdvZih0 cnVlKSkuc2V0QWxsb3dDcm9zc1BhZ2VUcmFuc2l0aW9uKHRydWUpLnNldEhhbmRs ZXIoZnVuY3Rpb24obCl7dmFyIGs9bC5nZXRQYXlsb2FkKCk7dmFyIG49ay5yZXNw b25zZXM7aWYobi5sZW5ndGghPWEubGVuZ3RoKXtyZXR1cm47fWVsc2UgZm9yKHZh ciBpPTA7aTxhLmxlbmd0aDtpKyspe3ZhciBqPWFbaV1bMF07dmFyIG09YVtpXVsx XTttLmlkPXRoaXMuaWQ7aWYobltpXVswXSE9ail7bS5pbnZva2VSZXNwb25zZUhh bmRsZXIoe3RyYW5zcG9ydEVycm9yOidXcm9uZyByZXNwb25zZSBvcmRlciBpbiBi dW5kbGVkIHJlcXVlc3QgdG8gJytqfSk7Y29udGludWU7fXZhciBoPW0uaW50ZXJw cmV0UmVzcG9uc2UobltpXVsxXSk7bS5pbnZva2VSZXNwb25zZUhhbmRsZXIoaCk7 fX0pLnNldFRyYW5zcG9ydEVycm9ySGFuZGxlcihmdW5jdGlvbihtKXt2YXIgaz1b XTt2YXIgaT17dHJhbnNwb3J0RXJyb3I6bS5lcnJvckRlc2NyaXB0aW9ufTtmb3Io dmFyIGg9MDtoPGEubGVuZ3RoO2grKyl7dmFyIGo9YVtoXVswXTt2YXIgbD1hW2hd WzFdO2sucHVzaChqKTtsLmlkPXRoaXMuaWQ7bC5pbnZva2VSZXNwb25zZUhhbmRs ZXIoaSk7fX0pLnNldEZpbmFsbHlIYW5kbGVyKGZ1bmN0aW9uKGgpe2QoKTt9KS5z ZW5kKCk7cmV0dXJuIGc7fSxib290c3RyYXA6ZnVuY3Rpb24oYyxiLGQpe3ZhciBl PSdHRVQnO3ZhciBmPXRydWU7dmFyIGE9e307aWYoZHx8KGImJmIucmVsPT0nYXN5 bmMtcG9zdCcpKXtlPSdQT1NUJztmPWZhbHNlO2lmKGMpe2M9VVJJKGMpO2E9Yy5n ZXRRdWVyeURhdGEoKTtjLnNldFF1ZXJ5RGF0YSh7fSk7fX12YXIgZz1QYXJlbnQu YnlDbGFzcyhiLCdzdGF0X2VsZW0nKXx8YjtpZihnJiZDU1MuaGFzQ2xhc3MoZywn YXN5bmNfc2F2aW5nJykpcmV0dXJuIGZhbHNlO25ldyBBc3luY1JlcXVlc3QoYyku c2V0UmVhZE9ubHkoZikuc2V0TWV0aG9kKGUpLnNldERhdGEoYSkuc2V0TmVjdGFy TW9kdWxlRGF0YVNhZmUoYikuc2V0U3RhdHVzRWxlbWVudChnKS5zZXRSZWxhdGl2 ZVRvKGIpLnNlbmQoKTtyZXR1cm4gZmFsc2U7fSxwb3N0OmZ1bmN0aW9uKGIsYSl7 bmV3IEFzeW5jUmVxdWVzdChiKS5zZXRSZWFkT25seShmYWxzZSkuc2V0TWV0aG9k KCdQT1NUJykuc2V0RGF0YShhKS5zZW5kKCk7cmV0dXJuIGZhbHNlO30sY2xlYXJD YWNoZTpmdW5jdGlvbigpe0FzeW5jUmVxdWVzdC5fcmVxc0NhY2hlPXt9O30sZ2V0 TGFzdElkOmZ1bmN0aW9uKCl7cmV0dXJuIEFzeW5jUmVxdWVzdC5fbGFzdF9pZDt9 LF9KU09OUFJlY2VpdmVyczp7fSxfYWxsQnVuZGxlZFJlcXVlc3RzOltdLF9idW5k bGVkUmVxdWVzdFByb3BlcnRpZXM6e30sX2J1bmRsZVRpbWVyOm51bGwsc3VwcHJl c3NPbmxvYWRUb2tlbjp7fSxSRVBMQVlBQkxFX0FKQVg6J2FqYXgvcmVwbGF5YWJs ZScsX2xhc3RfaWQ6MixfaWRfdGhyZXNob2xkOjIsX3JlcXNDYWNoZTp7fSxfaW5m bGlnaHQ6W10sX2luZmxpZ2h0QWRkOmJhZ29maG9sZGluZyxfaW5mbGlnaHRQdXJn ZTpiYWdvZmhvbGRpbmcsX2luZmxpZ2h0RW5hYmxlOmZ1bmN0aW9uKCl7aWYodWEu aWUoKSl7Y29weV9wcm9wZXJ0aWVzKEFzeW5jUmVxdWVzdCx7X2luZmxpZ2h0QWRk OmZ1bmN0aW9uKGEpe3RoaXMuX2luZmxpZ2h0LnB1c2goYSk7fSxfaW5mbGlnaHRQ dXJnZTpmdW5jdGlvbigpe0FzeW5jUmVxdWVzdC5faW5mbGlnaHQ9QXN5bmNSZXF1 ZXN0Ll9pbmZsaWdodC5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIGEudHJhbnNw b3J0JiZhLnRyYW5zcG9ydC5yZWFkeVN0YXRlPDQ7fSk7fX0pO29udW5sb2FkUmVn aXN0ZXIoZnVuY3Rpb24oKXtBc3luY1JlcXVlc3QuX2luZmxpZ2h0LmVhY2goZnVu Y3Rpb24oYSl7aWYoYS50cmFuc3BvcnQmJmEudHJhbnNwb3J0LnJlYWR5U3RhdGU8 NCl7YS50cmFuc3BvcnQuYWJvcnQoKTtkZWxldGUgYS50cmFuc3BvcnQ7fX0pO30p O319fSk7Y29weV9wcm9wZXJ0aWVzKEFzeW5jUmVxdWVzdC5wcm90b3R5cGUse3Nl dE1ldGhvZDpmdW5jdGlvbihhKXt0aGlzLm1ldGhvZD1hLnRvU3RyaW5nKCkudG9V cHBlckNhc2UoKTtyZXR1cm4gdGhpczt9LGdldE1ldGhvZDpmdW5jdGlvbigpe3Jl dHVybiB0aGlzLm1ldGhvZDt9LHNldERhdGE6ZnVuY3Rpb24oYSl7dGhpcy5kYXRh PWE7cmV0dXJuIHRoaXM7fSxnZXREYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu ZGF0YTt9LHNldENvbnRleHREYXRhOmZ1bmN0aW9uKGIsYyxhKXthPWE9PT11bmRl ZmluZWQ/dHJ1ZTphO2lmKGEpdGhpcy5jb250ZXh0WydfbG9nXycrYl09YztyZXR1 cm4gdGhpczt9LHNldFVSSTpmdW5jdGlvbihhKXt2YXIgYj1VUkkoYSk7aWYodGhp cy5nZXRPcHRpb24oJ3VzZUlmcmFtZVRyYW5zcG9ydCcpJiYhYi5pc0ZhY2Vib29r VVJJKCkpcmV0dXJuIHRoaXM7aWYoIXRoaXMuZ2V0T3B0aW9uKCdqc29ucCcpJiYh dGhpcy5nZXRPcHRpb24oJ3VzZUlmcmFtZVRyYW5zcG9ydCcpJiYhYi5pc1NhbWVP cmlnaW4oKSlyZXR1cm4gdGhpcztpZighYXx8Yi50b1N0cmluZygpPT09Jycpe2lm KHdpbmRvdy5zZW5kX2Vycm9yX3NpZ25hbCYmd2luZG93LmdldF9lcnJvcl9zdGFj ayl7c2VuZF9lcnJvcl9zaWduYWwoJ2FzeW5jX2Vycm9yJywnMTAxMzotOjA6LTon K3dpbmRvdy5sb2NhdGlvbi5ocmVmKTtzZW5kX2Vycm9yX3NpZ25hbCgnYXN5bmNf eHBvcnRfc3RhY2snLCcxMDEzOicrd2luZG93LmxvY2F0aW9uLmhyZWYrJzo6Jytn ZXRfZXJyb3Jfc3RhY2soKSk7fXJldHVybiB0aGlzO310aGlzLnVyaT1iO3JldHVy biB0aGlzO30sZ2V0VVJJOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudXJpLnRvU3Ry aW5nKCk7fSxzZXRJbml0aWFsSGFuZGxlcjpmdW5jdGlvbihhKXt0aGlzLmluaXRp YWxIYW5kbGVyPWE7cmV0dXJuIHRoaXM7fSxzZXRIYW5kbGVyOmZ1bmN0aW9uKGEp e2lmKCEodHlwZW9mKGEpIT0nZnVuY3Rpb24nKSl0aGlzLmhhbmRsZXI9YTtyZXR1 cm4gdGhpczt9LGdldEhhbmRsZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYW5k bGVyO30sc2V0RXJyb3JIYW5kbGVyOmZ1bmN0aW9uKGEpe2lmKCEodHlwZW9mKGEp IT0nZnVuY3Rpb24nKSl0aGlzLmVycm9ySGFuZGxlcj1hO3JldHVybiB0aGlzO30s c2V0VHJhbnNwb3J0RXJyb3JIYW5kbGVyOmZ1bmN0aW9uKGEpe3RoaXMudHJhbnNw b3J0RXJyb3JIYW5kbGVyPWE7cmV0dXJuIHRoaXM7fSxnZXRFcnJvckhhbmRsZXI6 ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcnJvckhhbmRsZXI7fSxnZXRUcmFuc3Bv cnRFcnJvckhhbmRsZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmFuc3BvcnRF cnJvckhhbmRsZXI7fSxzZXRUaW1lb3V0SGFuZGxlcjpmdW5jdGlvbihiLGEpe2lm KCEodHlwZW9mKGEpIT0nZnVuY3Rpb24nKSl7dGhpcy50aW1lb3V0PWI7dGhpcy50 aW1lb3V0SGFuZGxlcj1hO31yZXR1cm4gdGhpczt9LHJlc2V0VGltZW91dDpmdW5j dGlvbihhKXtpZighKHRoaXMudGltZW91dEhhbmRsZXI9PT1udWxsKSlpZihhPT09 bnVsbCl7dGhpcy50aW1lb3V0PW51bGw7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIp O3RoaXMudGltZXI9bnVsbDt9ZWxzZXt0aGlzLnRpbWVvdXQ9YTtjbGVhclRpbWVv dXQodGhpcy50aW1lcik7dGhpcy50aW1lcj10aGlzLl9oYW5kbGVUaW1lb3V0LmJp bmQodGhpcykuZGVmZXIodGhpcy50aW1lb3V0KTt9cmV0dXJuIHRoaXM7fSxfaGFu ZGxlVGltZW91dDpmdW5jdGlvbigpe3RoaXMuYWJhbmRvbigpO3RoaXMudGltZW91 dEhhbmRsZXIodGhpcyk7fSxzZXROZXdTZXJpYWw6ZnVuY3Rpb24oKXt0aGlzLmlk PSsrQXN5bmNSZXF1ZXN0Ll9sYXN0X2lkO3JldHVybiB0aGlzO30sc2V0RmluYWxs eUhhbmRsZXI6ZnVuY3Rpb24oYSl7dGhpcy5maW5hbGx5SGFuZGxlcj1hO3JldHVy biB0aGlzO30sc2V0U2VydmVyRGlhbG9nQ2FuY2VsSGFuZGxlcjpmdW5jdGlvbihh KXt0aGlzLnNlcnZlckRpYWxvZ0NhbmNlbEhhbmRsZXI9YTtyZXR1cm4gdGhpczt9 LHNldFByZUJvb3Rsb2FkSGFuZGxlcjpmdW5jdGlvbihhKXt0aGlzLnByZUJvb3Rs b2FkSGFuZGxlcj1hO3JldHVybiB0aGlzO30sc2V0UmVhZE9ubHk6ZnVuY3Rpb24o YSl7aWYoISh0eXBlb2YoYSkhPSdib29sZWFuJykpdGhpcy5yZWFkT25seT1hO3Jl dHVybiB0aGlzO30sc2V0RkJNTEZvcm06ZnVuY3Rpb24oKXt0aGlzLndyaXRlUmVx dWlyZWRQYXJhbXM9WyJmYl9zaWciXTtyZXR1cm4gdGhpczt9LGdldFJlYWRPbmx5 OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZE9ubHk7fSxzZXRSZWxhdGl2ZVRv OmZ1bmN0aW9uKGEpe3RoaXMucmVsYXRpdmVUbz1hO3JldHVybiB0aGlzO30sZ2V0 UmVsYXRpdmVUbzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlbGF0aXZlVG87fSxz ZXRTdGF0dXNDbGFzczpmdW5jdGlvbihhKXt0aGlzLnN0YXR1c0NsYXNzPWE7cmV0 dXJuIHRoaXM7fSxzZXRTdGF0dXNFbGVtZW50OmZ1bmN0aW9uKGEpe3RoaXMuc3Rh dHVzRWxlbWVudD1hO3JldHVybiB0aGlzO30sZ2V0U3RhdHVzRWxlbWVudDpmdW5j dGlvbigpe3JldHVybiBnZSh0aGlzLnN0YXR1c0VsZW1lbnQpO30saXNSZWxldmFu dDpmdW5jdGlvbigpe2lmKHRoaXMuX2FsbG93Q3Jvc3NQYWdlVHJhbnNpdGlvbily ZXR1cm4gdHJ1ZTtpZighdGhpcy5pZClyZXR1cm4gdHJ1ZTtyZXR1cm4gdGhpcy5p ZD5Bc3luY1JlcXVlc3QuX2lkX3RocmVzaG9sZDt9LGNsZWFyU3RhdHVzSW5kaWNh dG9yOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXRTdGF0dXNFbGVtZW50KCk7aWYo YSl7Q1NTLnJlbW92ZUNsYXNzKGEsJ2FzeW5jX3NhdmluZycpO0NTUy5yZW1vdmVD bGFzcyhhLHRoaXMuc3RhdHVzQ2xhc3MpO319LGFkZFN0YXR1c0luZGljYXRvcjpm dW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0U3RhdHVzRWxlbWVudCgpO2lmKGEpe0NT Uy5hZGRDbGFzcyhhLCdhc3luY19zYXZpbmcnKTtDU1MuYWRkQ2xhc3MoYSx0aGlz LnN0YXR1c0NsYXNzKTt9fSxzcGVjaWZpZXNXcml0ZVJlcXVpcmVkUGFyYW1zOmZ1 bmN0aW9uKCl7cmV0dXJuIHRoaXMud3JpdGVSZXF1aXJlZFBhcmFtcy5ldmVyeShm dW5jdGlvbihhKXt0aGlzLmRhdGFbYV09dGhpcy5kYXRhW2FdfHxFbnZbYV18fChn ZShhKXx8e30pLnZhbHVlO2lmKHRoaXMuZGF0YVthXSE9PXVuZGVmaW5lZClyZXR1 cm4gdHJ1ZTtyZXR1cm4gZmFsc2U7fSx0aGlzKTt9LHNldFJlcGxheWFibGU6ZnVu Y3Rpb24oYixhKXt0aGlzLl9yZXBsYXlhYmxlPWI7dGhpcy5fcmVwbGF5S2V5PWF8 fCcnO3JldHVybiB0aGlzO30sc2V0T3B0aW9uOmZ1bmN0aW9uKGEsYil7aWYodHlw ZW9mKHRoaXMub3B0aW9uW2FdKSE9J3VuZGVmaW5lZCcpdGhpcy5vcHRpb25bYV09 YjtyZXR1cm4gdGhpczt9LGdldE9wdGlvbjpmdW5jdGlvbihhKXt0eXBlb2YodGhp cy5vcHRpb25bYV0pPT0ndW5kZWZpbmVkJztyZXR1cm4gdGhpcy5vcHRpb25bYV07 fSxhYm9ydDpmdW5jdGlvbigpe2lmKHRoaXMudHJhbnNwb3J0KXt2YXIgYT10aGlz LmdldFRyYW5zcG9ydEVycm9ySGFuZGxlcigpO3RoaXMuc2V0T3B0aW9uKCdzdXBw cmVzc0Vycm9yQWxlcnRzJyx0cnVlKTt0aGlzLnNldFRyYW5zcG9ydEVycm9ySGFu ZGxlcihiYWdvZmhvbGRpbmcpO3RoaXMuX3JlcXVlc3RBYm9ydGVkPTE7dGhpcy50 cmFuc3BvcnQuYWJvcnQoKTt0aGlzLnNldFRyYW5zcG9ydEVycm9ySGFuZGxlcihh KTt9fSxhYmFuZG9uOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIp O3RoaXMuc2V0T3B0aW9uKCdzdXBwcmVzc0Vycm9yQWxlcnRzJyx0cnVlKS5zZXRI YW5kbGVyKGJhZ29maG9sZGluZykuc2V0RXJyb3JIYW5kbGVyKGJhZ29maG9sZGlu Zykuc2V0VHJhbnNwb3J0RXJyb3JIYW5kbGVyKGJhZ29maG9sZGluZyk7aWYodGhp cy50cmFuc3BvcnQpe3RoaXMuX3JlcXVlc3RBYm9ydGVkPTE7dGhpcy50cmFuc3Bv cnQuYWJvcnQoKTt9fSxzZXROZWN0YXJBY3Rpb25EYXRhOmZ1bmN0aW9uKGEpe2lm KHRoaXMuZGF0YS5uY3RyPT09dW5kZWZpbmVkKXRoaXMuZGF0YS5uY3RyPXt9O3Ro aXMuZGF0YS5uY3RyLl9pYT0xO2lmKGEpe2lmKHRoaXMuZGF0YS5uY3RyLl9hcz09 PXVuZGVmaW5lZCl0aGlzLmRhdGEubmN0ci5fYXM9e307Y29weV9wcm9wZXJ0aWVz KHRoaXMuZGF0YS5uY3RyLl9hcyxhKTt9cmV0dXJuIHRoaXM7fSxzZXROZWN0YXJE YXRhOmZ1bmN0aW9uKGEpe2lmKGEpe2lmKHRoaXMuZGF0YS5uY3RyPT09dW5kZWZp bmVkKXRoaXMuZGF0YS5uY3RyPXt9O2NvcHlfcHJvcGVydGllcyh0aGlzLmRhdGEu bmN0cixhKTt9cmV0dXJuIHRoaXM7fSxzZXROZWN0YXJNb2R1bGVEYXRhU2FmZTpm dW5jdGlvbihhKXtpZih0aGlzLnNldE5lY3Rhck1vZHVsZURhdGEpdGhpcy5zZXRO ZWN0YXJNb2R1bGVEYXRhKGEpO3JldHVybiB0aGlzO30sc2V0TmVjdGFySW1wcmVz c2lvbklkU2FmZTpmdW5jdGlvbigpe2lmKHRoaXMuc2V0TmVjdGFySW1wcmVzc2lv bklkKXRoaXMuc2V0TmVjdGFySW1wcmVzc2lvbklkKCk7cmV0dXJuIHRoaXM7fSxz ZXRQcmVmZXRjaDpmdW5jdGlvbihhKXt0aGlzLl9pc1ByZWZldGNoPWE7dGhpcy5z ZXRBbGxvd0Nyb3NzUGFnZVRyYW5zaXRpb24odHJ1ZSk7cmV0dXJuIHRoaXM7fSxz ZXRBbGxvd0Nyb3NzUGFnZVRyYW5zaXRpb246ZnVuY3Rpb24oYSl7dGhpcy5fYWxs b3dDcm9zc1BhZ2VUcmFuc2l0aW9uPSEhYTtyZXR1cm4gdGhpczt9LHNlbmQ6ZnVu Y3Rpb24oYyl7aWYodGhpcy5fY2hlY2tDYWNoZSYmdGhpcy5fY2hlY2tDYWNoZSgp KXJldHVybiB0cnVlO2M9Y3x8ZmFsc2U7aWYoIXRoaXMudXJpKXJldHVybiBmYWxz ZTshdGhpcy5lcnJvckhhbmRsZXImJiF0aGlzLmdldE9wdGlvbignc3VwcHJlc3NF cnJvckhhbmRsZXJXYXJuaW5nJyk7aWYodGhpcy5nZXRPcHRpb24oJ2pzb25wJykm JnRoaXMubWV0aG9kIT0nR0VUJyl0aGlzLnNldE1ldGhvZCgnR0VUJyk7aWYodGhp cy5nZXRPcHRpb24oJ3VzZUlmcmFtZVRyYW5zcG9ydCcpJiZ0aGlzLm1ldGhvZCE9 J0dFVCcpdGhpcy5zZXRNZXRob2QoJ0dFVCcpO3RoaXMudGltZW91dEhhbmRsZXIh PT1udWxsJiYodGhpcy5nZXRPcHRpb24oJ2pzb25wJyl8fHRoaXMuZ2V0T3B0aW9u KCd1c2VJZnJhbWVUcmFuc3BvcnQnKSk7aWYoIXRoaXMuZ2V0UmVhZE9ubHkoKSl7 aWYoIXRoaXMuc3BlY2lmaWVzV3JpdGVSZXF1aXJlZFBhcmFtcygpKXJldHVybiBm YWxzZTtpZih0aGlzLm1ldGhvZCE9J1BPU1QnKXJldHVybiBmYWxzZTt9aWYodGhp cy5tZXRob2Q9PSdQT1NUJyYmdGhpcy5nZXRPcHRpb24oJ3RmYkVuZHBvaW50Jykp e3RoaXMuZGF0YS5mYl9kdHNnPUVudi5mYl9kdHNnO3RoaXMuZGF0YS5sc2Q9Z2V0 Q29va2llKCdsc2QnKTt9dGhpcy5fcmVwbGF5YWJsZT0oIXRoaXMuZ2V0UmVhZE9u bHkoKSYmdGhpcy5fcmVwbGF5YWJsZSE9PWZhbHNlKXx8dGhpcy5fcmVwbGF5YWJs ZTtpZih0aGlzLl9yZXBsYXlhYmxlKUFyYml0ZXIuaW5mb3JtKEFzeW5jUmVxdWVz dC5SRVBMQVlBQkxFX0FKQVgsdGhpcyk7aWYoIWlzX2VtcHR5KHRoaXMuY29udGV4 dCkmJnRoaXMuZ2V0T3B0aW9uKCd0ZmJFbmRwb2ludCcpKXtjb3B5X3Byb3BlcnRp ZXModGhpcy5kYXRhLHRoaXMuY29udGV4dCk7dGhpcy5kYXRhLmFqYXhfbG9nPTE7 fWlmKCF0aGlzLmdldFJlYWRPbmx5KCkmJnRoaXMuZ2V0T3B0aW9uKCd0ZmJFbmRw b2ludCcpJiZ0aGlzLm1ldGhvZD09J1BPU1QnJiZ0aGlzLmRhdGEucG9zdF9mb3Jt X2lkX3NvdXJjZT09PXVuZGVmaW5lZCl0aGlzLmRhdGEucG9zdF9mb3JtX2lkX3Nv dXJjZT0nQXN5bmNSZXF1ZXN0JztpZih0aGlzLmdldE9wdGlvbignYnVuZGxlJykm JkFzeW5jUmVxdWVzdC5fYnVuZGxlUmVxdWVzdCh0aGlzKSlyZXR1cm4gdHJ1ZTt0 aGlzLnNldE5ld1NlcmlhbCgpO2lmKHRoaXMuZ2V0T3B0aW9uKCd0ZmJFbmRwb2lu dCcpKXRoaXMudXJpLmFkZFF1ZXJ5RGF0YSh7X19hOjF9KTt0aGlzLmZpbmFsbHlI YW5kbGVyPWFzeW5jX2NhbGxiYWNrKHRoaXMuZmluYWxseUhhbmRsZXIsJ2ZpbmFs Jyk7dmFyIGgsZDtpZih0aGlzLm1ldGhvZD09J0dFVCcpe2g9dGhpcy51cmkuYWRk UXVlcnlEYXRhKHRoaXMuZGF0YSkudG9TdHJpbmcoKTtkPScnO31lbHNle2g9dGhp cy51cmkudG9TdHJpbmcoKTtkPVVSSS5pbXBsb2RlUXVlcnkodGhpcy5kYXRhKTt9 aWYodGhpcy5nZXRPcHRpb24oJ2pzb25wJyl8fHRoaXMuZ2V0T3B0aW9uKCd1c2VJ ZnJhbWVUcmFuc3BvcnQnKSl7aD10aGlzLnVyaS5hZGRRdWVyeURhdGEoe19fYTp0 aGlzLmlkfSkudG9TdHJpbmcoKTtBc3luY1JlcXVlc3QuX0pTT05QUmVjZWl2ZXJz W3RoaXMuaWRdPWFzeW5jX2NhbGxiYWNrKGJpbmQodGhpcywnb25qc29ucHJlc3Bv bnNlJyksJ2pzb24nKTtpZih0aGlzLmdldE9wdGlvbignanNvbnAnKSl7KGZ1bmN0 aW9uKCl7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCgkTignc2NyaXB0Jyx7c3Jj OmgsdHlwZToidGV4dC9qYXZhc2NyaXB0In0pKTt9KS5iaW5kKHRoaXMpLmRlZmVy KCk7fWVsc2V7dmFyIGU9e3Bvc2l0aW9uOidhYnNvbHV0ZScsdG9wOictMTAwMHB4 JyxsZWZ0OictMTAwMHB4Jyx3aWR0aDonODBweCcsaGVpZ2h0Oic4MHB4J307dGhp cy50cmFuc3BvcnRJZnJhbWU9JE4oJ2lmcmFtZScse3NyYzoiamF2YXNjcmlwdDon JyIsc3R5bGU6ZX0pO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy50cmFu c3BvcnRJZnJhbWUpO3RoaXMudHJhbnNwb3J0SWZyYW1lLnNyYz1oO31yZXR1cm4g dHJ1ZTt9aWYodGhpcy50cmFuc3BvcnQpcmV0dXJuIGZhbHNlO3ZhciBnPW51bGw7 dHJ5e2c9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7fWNhdGNoKGIpe31pZighZyl0cnl7 Zz1uZXcgQWN0aXZlWE9iamVjdCgiTXN4bWwyLlhNTEhUVFAiKTt9Y2F0Y2goYil7 fWlmKCFnKXRyeXtnPW5ldyBBY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRU UCIpO31jYXRjaChiKXt9aWYoIWcpcmV0dXJuIGZhbHNlO2cub25yZWFkeXN0YXRl Y2hhbmdlPWFzeW5jX2NhbGxiYWNrKGJpbmQodGhpcywnb25zdGF0ZWNoYW5nZScp LCd4aHInKTtpZighYyl0aGlzLnJlbWFpbmluZ1JldHJpZXM9dGhpcy5nZXRPcHRp b24oJ3JldHJpZXMnKTtpZih3aW5kb3cuc2VuZF9lcnJvcl9zaWduYWx8fHdpbmRv dy5BcmJpdGVyTW9uaXRvcil0aGlzLl9zZW5kVGltZVN0YW1wPXRoaXMuX3NlbmRU aW1lU3RhbXB8fCgrbmV3IERhdGUoKSk7dGhpcy50cmFuc3BvcnQ9Zzt0cnl7dGhp cy50cmFuc3BvcnQub3Blbih0aGlzLm1ldGhvZCxoLHRoaXMuZ2V0T3B0aW9uKCdh c3luY2hyb25vdXMnKSk7fWNhdGNoKGEpe3JldHVybiBmYWxzZTt9dmFyIGY9ZW52 X2dldCgnc3ZuX3JldicpO2lmKGYpdGhpcy50cmFuc3BvcnQuc2V0UmVxdWVzdEhl YWRlcignWC1TVk4tUmV2JyxTdHJpbmcoZikpO2lmKHRoaXMubWV0aG9kPT0nUE9T VCcpdGhpcy50cmFuc3BvcnQuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBl JywnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyk7dGhpcy5hZGRT dGF0dXNJbmRpY2F0b3IoKTt0aGlzLnRyYW5zcG9ydC5zZW5kKGQpO2lmKHRoaXMu dGltZW91dCE9PW51bGwpdGhpcy5yZXNldFRpbWVvdXQodGhpcy50aW1lb3V0KTtB c3luY1JlcXVlc3QuX2luZmxpZ2h0QWRkKHRoaXMpO3JldHVybiB0cnVlO30sX2Rp c3BsYXlTZXJ2ZXJEaWFsb2c6ZnVuY3Rpb24oYyxiKXt2YXIgYT1uZXcgRGlhbG9n KGMpO2lmKGIpYS5zZXRIYW5kbGVyKHRoaXMuX2Rpc3BsYXlDb25maXJtYXRpb25I YW5kbGVyLmJpbmQodGhpcyxhKSk7YS5zZXRDYW5jZWxIYW5kbGVyKGZ1bmN0aW9u KCl7dGhpcy5zZXJ2ZXJEaWFsb2dDYW5jZWxIYW5kbGVyLmFwcGx5KHRoaXMsYXJn dW1lbnRzKTt0aGlzLmZpbmFsbHlIYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRz KTt9LmJpbmQodGhpcykpLnNldENsb3NlSGFuZGxlcih0aGlzLmZpbmFsbHlIYW5k bGVyLmJpbmQodGhpcykpLnNob3coKTt9LF9kaXNwbGF5Q29uZmlybWF0aW9uSGFu ZGxlcjpmdW5jdGlvbihhKXt0aGlzLmRhdGEuY29uZmlybWVkPTE7Y29weV9wcm9w ZXJ0aWVzKHRoaXMuZGF0YSxhLmdldEZvcm1EYXRhKCkpO3RoaXMuc2VuZCgpO319 KTtmdW5jdGlvbiBBc3luY1Jlc3BvbnNlKGIsYSl7Y29weV9wcm9wZXJ0aWVzKHRo aXMse2Vycm9yOjAsZXJyb3JTdW1tYXJ5Om51bGwsZXJyb3JEZXNjcmlwdGlvbjpu dWxsLG9ubG9hZDpudWxsLHJlcGxheTpmYWxzZSxwYXlsb2FkOmF8fG51bGwscmVx dWVzdDpifHxudWxsLHNpbGVudEVycm9yOmZhbHNlLGlzX2xhc3Q6dHJ1ZX0pO3Jl dHVybiB0aGlzO31jb3B5X3Byb3BlcnRpZXMoQXN5bmNSZXNwb25zZSx7ZGVmYXVs dEVycm9ySGFuZGxlcjpmdW5jdGlvbihiKXt0cnl7aWYoIWIuc2lsZW50RXJyb3Ip e0FzeW5jUmVzcG9uc2UudmVyYm9zZUVycm9ySGFuZGxlcihiKTt9ZWxzZSBiLmxv Z0Vycm9yQnlHcm91cCgnc2lsZW50JywxMCk7fWNhdGNoKGEpe2FsZXJ0KGIpO319 LHZlcmJvc2VFcnJvckhhbmRsZXI6ZnVuY3Rpb24oYil7dHJ5e3ZhciBzdW1tYXJ5 PWIuZ2V0RXJyb3JTdW1tYXJ5KCk7dmFyIGRlc2M9Yi5nZXRFcnJvckRlc2NyaXB0 aW9uKCk7Yi5sb2dFcnJvckJ5R3JvdXAoJ3BvcHVwJywxMCk7aWYoYi5zaWxlbnRF cnJvciYmZGVzYz09JycpZGVzYz1fdHgoIlNvbWV0aGluZyB3ZW50IHdyb25nLiBX ZSdyZSB3b3JraW5nIG9uIGdldHRpbmcgdGhpcyBmaXhlZCBhcyBzb29uIGFzIHdl IGNhbi4gWW91IG1heSBiZSBhYmxlIHRvIHRyeSBhZ2Fpbi4iKTtFcnJvckRpYWxv Zy5zaG93KHN1bW1hcnksZGVzYyk7fWNhdGNoKGEpe2FsZXJ0KGIpO319fSk7Y29w eV9wcm9wZXJ0aWVzKEFzeW5jUmVzcG9uc2UucHJvdG90eXBlLHtnZXRSZXF1ZXN0 OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVxdWVzdDt9LGdldFBheWxvYWQ6ZnVu Y3Rpb24oKXtyZXR1cm4gdGhpcy5wYXlsb2FkO30sZ2V0RXJyb3I6ZnVuY3Rpb24o KXtyZXR1cm4gdGhpcy5lcnJvcjt9LGdldEVycm9yU3VtbWFyeTpmdW5jdGlvbigp e3JldHVybiB0aGlzLmVycm9yU3VtbWFyeTt9LHNldEVycm9yU3VtbWFyeTpmdW5j dGlvbihhKXthPShhPT09dW5kZWZpbmVkP251bGw6YSk7dGhpcy5lcnJvclN1bW1h cnk9YTtyZXR1cm4gdGhpczt9LGdldEVycm9yRGVzY3JpcHRpb246ZnVuY3Rpb24o KXtyZXR1cm4gdGhpcy5lcnJvckRlc2NyaXB0aW9uO30sZ2V0RXJyb3JJc1dhcm5p bmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcnJvcklzV2FybmluZzt9LHNldFJl cGxheTpmdW5jdGlvbihhKXthPShhPT09dW5kZWZpbmVkP3RydWU6YSk7dGhpcy5y ZXBsYXk9ISFhO3JldHVybiB0aGlzO30saXNSZXBsYXk6ZnVuY3Rpb24oKXtyZXR1 cm4gdGhpcy5yZXBsYXk7fSxsb2dFcnJvcjpmdW5jdGlvbihhLGMpe2lmKHdpbmRv dy5zZW5kX2Vycm9yX3NpZ25hbCl7Yz0oYz09PXVuZGVmaW5lZD8nJzooJzonK2Mp KTt2YXIgZD10aGlzLnJlcXVlc3QuZ2V0VVJJKCk7dmFyIGI9dGhpcy5lcnJvcisn OicrKGVudl9nZXQoJ3ZpcCcpfHwnLScpK2MrJzonKyhkfHwnLScpO2lmKGQmJmQu aW5kZXhPZignc2NyaWJlX2VuZHBvaW50LnBocCcpIT0tMSlhPSdhc3luY19lcnJv cl9kb3VibGUnO3NlbmRfZXJyb3Jfc2lnbmFsKGEsYik7fX0sbG9nRXJyb3JCeUdy b3VwOmZ1bmN0aW9uKGIsYSl7aWYoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmEp PT0wKWlmKHRoaXMuZXJyb3I9PTEzNTcwMTB8fHRoaXMuZXJyb3I8MTUwMDApe3Ro aXMubG9nRXJyb3IoJ2FzeW5jX2Vycm9yX29vcHNfJytiKTt9ZWxzZSB0aGlzLmxv Z0Vycm9yKCdhc3luY19lcnJvcl9sb2dpY18nK2IpO319KTsKb25sb2FkUmVnaXN0 ZXIoZnVuY3Rpb24oKXtjb3B5X3Byb3BlcnRpZXMoQXN5bmNSZXF1ZXN0LnByb3Rv dHlwZSx7c2V0TmVjdGFyTW9kdWxlRGF0YTpmdW5jdGlvbihjKXtpZih0aGlzLm1l dGhvZD09J1BPU1QnKXt2YXIgZD1FbnYubW9kdWxlO2lmKGMmJmQ9PT11bmRlZmlu ZWQpe3ZhciBiPXtmYnBhZ2VfZmFuX2NvbmZpcm06MX07dmFyIGU9bnVsbDtmb3Io dmFyIGE9YzthJiZhIT1kb2N1bWVudC5ib2R5O2E9YS5wYXJlbnROb2RlKXtpZigh YS5pZHx8dHlwZW9mIGEuaWQhPT0nc3RyaW5nJyljb250aW51ZTtpZihhLmlkLnN0 YXJ0c1dpdGgoJ3BhZ2VsZXRfJykpe2Q9YS5pZDticmVhazt9aWYoIWUmJmJbYS5p ZF0pZT1hLmlkO31pZihkPT09dW5kZWZpbmVkJiZlKWQ9ZTt9aWYoZCE9PXVuZGVm aW5lZCl7aWYodGhpcy5kYXRhLm5jdHI9PT11bmRlZmluZWQpdGhpcy5kYXRhLm5j dHI9e307dGhpcy5kYXRhLm5jdHIuX21vZD1kO319fSxzZXROZWN0YXJJbXByZXNz aW9uSWQ6ZnVuY3Rpb24oKXtpZih0aGlzLm1ldGhvZD09J1BPU1QnKXt2YXIgYT1l bnZfZ2V0KCdpbXBpZCcpO2lmKGEhPT11bmRlZmluZWQpe2lmKHRoaXMuZGF0YS5u Y3RyPT09dW5kZWZpbmVkKXRoaXMuZGF0YS5uY3RyPXt9O3RoaXMuZGF0YS5uY3Ry Ll9pbXBpZD1hO319fX0pO30pOwpvbmxvYWRSZWdpc3RlcihmdW5jdGlvbigpe0V2 ZW50Lmxpc3Rlbihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsJ3N1Ym1pdCcsZnVu Y3Rpb24oYil7dmFyIGE9Yi5nZXRUYXJnZXQoKS5nZXRFbGVtZW50c0J5VGFnTmFt ZSgnKicpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWlmKGFbY10uZ2V0QXR0 cmlidXRlKCdwbGFjZWhvbGRlcicpJiZJbnB1dC5pc0VtcHR5KGFbY10pKWFbY10u dmFsdWU9Jyc7fSk7fSk7 ------------aE1bB7mWjKsLZBiYGCZAk5--