{"css":"*#dm *.dmBody div.u_1980417222\n{\n\tbackground-image:url(https://dp-cdn.multiscreensite.com/d_gallery/firstImages/a_City_skyline_1600_754_d.jpg) !important;\n}\n*#dm *.dmBody div.u_1582953132\n{\n\tbackground-image:url(https://dp-cdn.multiscreensite.com/d_gallery/firstImages/a_City_skyline_1600_754_d.jpg) !important;\n}\n*#dm *.dmBody a.span.textonly\n{\n\tcolor:rgb(255,255,255) !important;\n}\n*#dm *.dmBody div.u_1516620858\n{\n\twidth:775px !important;\n\tmax-width:100% !important;\n\tdisplay:block !important;\n}\n*#dm *.dmBody div.u_1694205906\n{\n\tbackground-color:rgba(0,0,0,0) !important;\n}\n*#dm *.dmBody div.u_1487980814\n{\n\tbackground-color:rgba(0,0,0,0) !important;\n}\n*#dm *.dmBody div.dmPopupInner\n{\n\tbackground-color:rgb(255,255,255) !important;\n\tborder-style:solid !important;\n\tborder-width:0px !important;\n\t-webkit-box-shadow:0px 0px 10px rgba(0,0,0,0.30) !important;\n\tbox-shadow:0px 0px 10px rgba(0,0,0,0.30) !important;\n\t-moz-box-shadow:0px 0px 10px rgba(0,0,0,0.30) !important;\n\tborder-radius:10px !important;\n\t-moz-border-radius:10px !important;\n\t-webkit-border-radius:10px !important;\n\tbackground-image:none !important;\n\tbackground-repeat:no-repeat !important;\n\tbackground-size:cover !important;\n\tbackground-position:top right !important;\n}\n*#dm *.dmBody div.u_dm_content\n{\n\tbackground-image:none !important;\n}\n*#dm *.dmBody div.u_1111986376\n{\n\tbackground-color:rgb(255,255,255) !important;\n}\n*#dm *.dmBody a.u_1145340895 span.textonly\n{\n\ttext-align:center !important;\n\tfont-weight:normal !important;\n\tfont-family:'Roboto' !important;\n\tcolor:rgb(255,255,255) !important;\n}\n*#dm *.dmBody div.u_1364864902\n{\n\tline-height:normal !important;\n\tfont-family:roboto !important;\n}\n*#dm *.dmBody div.u_1312640753 h1\n{\n\tline-height:normal !important;\n}\n*#dm *.dmBody a.u_1145340895\n{\n\tcolor:rgb(95,95,95) !important;\n}\n*#dm *.dmBody a.u_1145340895:hover\n{\n\tcolor:rgb(122,122,122) !important;\n}\n*#dm *.dmBody a.u_1145340895.hover\n{\n\tcolor:rgb(122,122,122) !important;\n}\n*#dm *.dmBody a.u_1145340895 span.text\n{\n\ttext-align:center !important;\n\tfont-weight:700 !important;\n}\n","additionalWidgetCss":"/**/.imageWidget{position:relative}.imageWidget a,.imageWidget span.image-caption{font-style:italic;text-align:center}.imageWidget a[data-caption]::after,.imageWidget span[data-caption]::after{content:attr(data-caption);display:block;line-height:100%}\n.imageWidget.with-caption a::after,.imageWidget.with-caption span.image-caption::after{margin-top:12px}.imageWidget img[width][height]{height:auto}[data-flex-site] #fcontainer .imageWidget:after,[data-flex-site] #flex-footer .imageWidget:after,[data-flex-site] #flex-header .imageWidget:after{content:none}\n[data-flex-site] #fcontainer .imageWidget:before,[data-flex-site] #flex-footer .imageWidget:before,[data-flex-site] #flex-header .imageWidget:before{font-size:80px;transform:none}.imageWidget.hover img.hover-image,.imageWidget:hover img.hover-image{display:initial}\n.imageWidget.hover.hasHover img:not(.hover-image),.imageWidget:hover.hasHover img:not(.hover-image){display:none!important}.imageWidget img.hover-image,.imageWidget img.logo-on-scroll{display:none}/**/.dmNewParagraph[data-version] .text-align-left{text-align:left!important}.dmNewParagraph[data-version] .text-align-center{text-align:center!important}.dmNewParagraph[data-version] .text-align-right{text-align:right!important}\n.dmNewParagraph[data-version] .text-align-justify{text-align:justify!important}.dmNewParagraph[data-version] .ql-indent-1{padding:0 1em;padding-inline-end:0;padding-inline-start:3em}.dmNewParagraph[data-version] .ql-indent-2{padding:0 2em;padding-inline-end:0;padding-inline-start:6em}\n.dmNewParagraph[data-version] .ql-indent-3{padding:0 3em;padding-inline-end:0;padding-inline-start:9em}.dmNewParagraph[data-version] .ql-indent-4{padding:0 4em;padding-inline-end:0;padding-inline-start:12em}\n.dmNewParagraph[data-version] .ql-indent-5{padding:0 5em;padding-inline-end:0;padding-inline-start:15em}.dmNewParagraph[data-version] .ql-indent-6{padding:0 6em;padding-inline-end:0;padding-inline-start:18em}\n.dmNewParagraph[data-version] .ql-indent-7{padding:0 7em;padding-inline-end:0;padding-inline-start:21em}.dmNewParagraph[data-version] .ql-indent-8{padding:0 8em;padding-inline-end:0;padding-inline-start:24em}\n.dmNewParagraph[data-version] .ql-indent-9{padding:0 9em;padding-inline-end:0;padding-inline-start:27em}.dmNewParagraph[data-version]{line-height:initial}.dmNewParagraph[data-version] [class*=size-]{width:auto!important;height:auto!important}\n.dmNewParagraph[data-version] h1,.dmNewParagraph[data-version] h2,.dmNewParagraph[data-version] h3,.dmNewParagraph[data-version] h4,.dmNewParagraph[data-version] h5,.dmNewParagraph[data-version] h6,.dmNewParagraph[data-version] ol,.dmNewParagraph[data-version] p,.dmNewParagraph[data-version] ul{margin-top:0;margin-bottom:0}\n.dmNewParagraph[data-version] ol,.dmNewParagraph[data-version] ul{padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.dmNewParagraph[data-version] ol>li,.dmNewParagraph[data-version] ul>li{list-style-type:none;text-indent:-1.5em;margin:0 1em;margin-inline-end:0;margin-inline-start:2em}\n.dmNewParagraph[data-version] ol>li:before,.dmNewParagraph[data-version] ul>li:before{min-width:1em;display:inline-block;margin-right:.5em;margin-inline-start:0;margin-inline-end:.5em;text-align:right;text-align:end}\n.dmNewParagraph[data-version] ul .ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-1}.dmNewParagraph[data-version] ul .ql-indent-1:before{font-weight:700;content:\"○\"}\n.dmNewParagraph[data-version] ul .ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-2}.dmNewParagraph[data-version] ul .ql-indent-2:before,.dmNewParagraph[data-version] ul .ql-indent-3:before,.dmNewParagraph[data-version] ul .ql-indent-4:before,.dmNewParagraph[data-version] ul .ql-indent-5:before,.dmNewParagraph[data-version] ul .ql-indent-6:before,.dmNewParagraph[data-version] ul .ql-indent-7:before,.dmNewParagraph[data-version] ul .ql-indent-8:before,.dmNewParagraph[data-version] ul .ql-indent-9:before{font-weight:700;content:\"■\"}\n.dmNewParagraph[data-version] ul .ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-3}.dmNewParagraph[data-version] ul .ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9;counter-increment:list-4}\n.dmNewParagraph[data-version] ul .ql-indent-5{counter-reset:list-6 list-7 list-8 list-9;counter-increment:list-5}.dmNewParagraph[data-version] ul .ql-indent-6{counter-reset:list-7 list-8 list-9;counter-increment:list-6}\n.dmNewParagraph[data-version] ul .ql-indent-7{counter-reset:list-8 list-9;counter-increment:list-7}.dmNewParagraph[data-version] ul .ql-indent-8{counter-reset:list-9;counter-increment:list-8}.dmNewParagraph[data-version] ul .ql-indent-9{counter-reset:list-10 list-9;counter-increment:list-9}\n.dmNewParagraph[data-version] ul>li:before{font-weight:700;content:\"•\";font-family:Arial}.dmNewParagraph[data-version] ul.custom-list-1>li:not([class^=ql-indent-]):not([class*=\" ql-indent-\"]):before{content:\"○\";transform:scale(1);transform-origin:center right}\n.dmNewParagraph[data-version] ul.custom-list-2>li:not([class^=ql-indent-]):not([class*=\" ql-indent-\"]):before{content:\"★\";transform:scale(.7);transform-origin:center right}\n.dmNewParagraph[data-version] ul.custom-list-3>li:not([class^=ql-indent-]):not([class*=\" ql-indent-\"]):before{content:\"➞\";transform:scale(.8);transform-origin:center right}\n.dmNewParagraph[data-version] ul.custom-list-4>li:not([class^=ql-indent-]):not([class*=\" ql-indent-\"]):before{content:\"+\";transform:scale(.7);transform-origin:center right}\n.dmNewParagraph[data-version] ul.custom-list-5>li:not([class^=ql-indent-]):not([class*=\" ql-indent-\"]):before{content:\"-\";transform:scale(.7);transform-origin:center right}\n.dmNewParagraph[data-version] ul.custom-list-6>li:not([class^=ql-indent-]):not([class*=\" ql-indent-\"]):before{content:\"✓\";transform:scale(.8);transform-origin:center right}\n.dmNewParagraph[data-version] ul.custom-list-7>li:not([class^=ql-indent-]):not([class*=\" ql-indent-\"]):before{content:\"✗\";transform:scale(.8);transform-origin:center right}\n.dmNewParagraph[data-version] ol .ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-1}.dmNewParagraph[data-version] ol .ql-indent-1:before{content:counter(list-1,lower-alpha) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-2}.dmNewParagraph[data-version] ol .ql-indent-2:before{content:counter(list-2,lower-roman) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-3}.dmNewParagraph[data-version] ol .ql-indent-3:before{content:counter(list-3,decimal) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9;counter-increment:list-4}.dmNewParagraph[data-version] ol .ql-indent-4:before{content:counter(list-4,lower-alpha) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-5{counter-reset:list-6 list-7 list-8 list-9;counter-increment:list-5}.dmNewParagraph[data-version] ol .ql-indent-5:before{content:counter(list-5,lower-roman) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-6{counter-reset:list-7 list-8 list-9;counter-increment:list-6}.dmNewParagraph[data-version] ol .ql-indent-6:before{content:counter(list-6,decimal) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-7{counter-reset:list-8 list-9;counter-increment:list-7}.dmNewParagraph[data-version] ol .ql-indent-7:before{content:counter(list-7,lower-alpha) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-8{counter-reset:list-9;counter-increment:list-8}.dmNewParagraph[data-version] ol .ql-indent-8:before{content:counter(list-8,lower-roman) \". \"}\n.dmNewParagraph[data-version] ol .ql-indent-9{counter-reset:list-10 list-9;counter-increment:list-9}.dmNewParagraph[data-version] ol .ql-indent-9:before{content:counter(list-9,decimal) \". \"}\n.dmNewParagraph[data-version] ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.dmNewParagraph[data-version] ol li:before{content:counter(list-0,decimal) \". \"}\n.dmNewParagraph[data-version] a{vertical-align:initial}@media(min-width:768px) and (max-width:1024px){.dmNewParagraph[data-version] .t-text-align-left{text-align:left!important}.dmNewParagraph[data-version] .t-text-align-center{text-align:center!important}\n.dmNewParagraph[data-version] .t-text-align-right{text-align:right!important}.dmNewParagraph[data-version] .t-text-align-justify{text-align:justify!important}}@media(max-width:767px){.dmRoot .dmNewParagraph[data-version] .m-text-align-left{text-align:left!important}\n.dmRoot .dmNewParagraph[data-version] .m-text-align-center{text-align:center!important}.dmRoot .dmNewParagraph[data-version] .m-text-align-right{text-align:right!important}.dmRoot .dmNewParagraph[data-version] .m-text-align-justify{text-align:justify!important}\n}.inlineBindingLink{color:inherit!important;text-decoration:inherit!important}/**/@media(max-width:767px){body.dmRoot div[dmtemplateid]:not([dmtemplateid=SlideRightTopFloatM]) .dmHeader .multilingualWidget{position:absolute;top:14px;left:13px;margin-top:0}body.dmRoot div[dmtemplateid][dmtemplateid=SlideRightTopFloatM] .dmHeader .multilingualWidget{position:absolute;top:5px;right:17px}\n}@media(min-width:768px) and (max-width:1024px){body:not(.responsiveTablet) #dm div[dmtemplateid=StandardLayoutMultiT] .dmHeader .multilingualWidget{position:absolute!important;top:5px!important;right:17px!important;left:initial!important}\n}@media(max-width:767px){body.dmRoot .dmHeader .displayHidden-inner .multilingualWidget{top:0!important}}#dm_content div.dmRespCol div.multilingualWidget,#hcontainer div.dmRespCol div.multilingualWidget{width:auto!important;display:table!important}\n.multilingualWidget.displayNone{display:none!important}.multilingualWidget>div{position:relative}.multilingualWidget{clear:both;margin:0;vertical-align:top;display:table!important;font-size:0;font-family:sans-serif}\n.multilingualWidget .language{color:#888;display:inline-block}.multilingualWidget .language a{text-align:center;display:inline-block;color:inherit;border:#dadada 1px solid;background-color:#fff}.multilingualWidget .language a img{width:24px;height:26px;min-width:24px;min-height:26px}\n.multilingualWidget .language a span{display:none;line-height:initial}.multilingualWidget .language a span.name{margin-top:5px;margin-left:7px;font-size:12px;font-weight:400;text-transform:capitalize}\n.multilingualWidget .language a span.short-label{font-size:12px}.multilingualWidget .language a:after{line-height:initial}.multilingualWidget.open .current-language a:after{transform:rotate(-180deg)}.multilingualWidget .current-language a:after{transition:transform .2s}\n.multilingualWidget.dropdown .language{width:100%}.multilingualWidget.dropdown .language a{display:block;padding:1px 5px}.multilingualWidget.dropdown .language.other-languages{position:absolute;z-index:800;max-height:0;overflow:hidden;transition:max-height .1s ease-in-out}\n.multilingualWidget.dropdown .language.other-languages a{border-top:0!important}.multilingualWidget.dropdown .current-language{position:relative}.multilingualWidget.dropdown .current-language span.name{padding-right:25px}\n.multilingualWidget.dropdown .dm-icon{font-size:9px;display:inline-block;position:absolute;top:46%;transform:translateY(-50%);transition:transform .2s;right:8px}.multilingualWidget.dropdown.open .dm-icon{transform:rotate(-180deg) translateY(50%)}\n.multilingualWidget.dropdown.open .other-languages{display:block;max-height:300px}.multilingualWidget.dropdown .other-languages,.multilingualWidget.dropdown.flag-only .dm-icon,.multilingualWidget.inline span,.multilingualWidget.no-flag a img{display:none}\n.multilingualWidget.dropdown.flag-only a{border:transparent 1px solid;background-color:transparent}.multilingualWidget.dropdown.flag-only.open .language a{background-color:rgba(0,0,0,.3);border:#dadada 1px solid}\n.multilingualWidget.dropdown.long-label a{text-align:left;padding:2px 0 2px 5px;position:relative;box-sizing:border-box}.multilingualWidget.dropdown.long-label a span.name,.multilingualWidget.inline.flag-only .language,.multilingualWidget.inline.short-label.no-flag span.short-label{display:inline-block}\n.multilingualWidget.dropdown.long-label.no-flag a{padding:7px 10px 9px}.multilingualWidget.dropdown.long-label.no-flag a span.name,.multilingualWidget.dropdown.short-label.no-flag a span.short-label{margin:0;display:inline-block}\n.multilingualWidget.dropdown.short-label.no-flag a{padding:8px 22px 9px 10px;font-size:12px;min-height:32px;height:auto;box-sizing:border-box}.multilingualWidget.dropdown.short-label.no-flag .current-language a:after{top:12px}\n.multilingualWidget.short-label span.short-label{text-transform:uppercase}.multilingualWidget.inline.flag-only a{padding:2px 5px;height:32px;box-sizing:border-box}.multilingualWidget.inline.flag-only .current-language a{box-shadow:inset 0 0 8px 0 rgba(0,0,0,.6);border-right:0;border-right-width:0!important;border-right-color:transparent!important;border-right-style:none!important}\n.multilingualWidget.inline.flag-only .other-languages a:not(:last-child){border-right-width:0!important;border-right-color:transparent!important;border-right-style:none!important}.multilingualWidget.inline.flag-only .dm-icon,.multilingualWidget.inline.short-label.no-flag .dm-icon{display:none}\n.multilingualWidget.inline.short-label.no-flag .current-language a{padding-right:0;border-right-width:0!important;border-right-color:transparent!important;border-right-style:none!important}.multilingualWidget.inline.short-label.no-flag .current-language a span.short-label{font-weight:700}\n.multilingualWidget.inline.short-label.no-flag .other-languages a{border-left-color:transparent!important;border-left-width:0!important;border-left-style:none!important}.multilingualWidget.inline.short-label.no-flag .other-languages a:not(:last-child){padding-right:0;border-right-color:transparent!important;border-right-width:0!important;border-right-style:none!important}\n.multilingualWidget.inline.short-label.no-flag a{position:relative;padding:8px 10px;font-size:12px;min-height:32px;height:auto;text-decoration:none}.multilingualWidget.inline.short-label.no-flag a:after{content:\"/\";position:absolute;top:8px;right:-7px;z-index:1;pointer-events:none}\n.multilingualWidget.inline.short-label.no-flag a:hover .short-label{text-decoration:underline}.multilingualWidget.inline.short-label.no-flag .other-languages a:last-child:after{content:\"\"}/**/#dm .dmSocialHub:not(.gapSpacing) .socialHubInnerDiv a:not(:last-child){margin-right:5px}.socialHubIcon{display:flex!important;align-items:center;justify-content:center}.socialHubIcon svg{fill:currentColor;width:80%;height:80%}\n.socialHubIcon.style1,.socialHubIcon.style4,.socialHubIcon.style6,.socialHubIcon.style7{background:#617379}.socialHubIcon.style7{box-shadow:0 5px 0 0 #475459}.style1.dmSocialTiktok,.style4.dmSocialTiktok{background:#000}\n.style1.dmSocialFacebook,.style4.dmSocialFacebook{background:#1877f2}.style1.dmSocialTwitter,.style4.dmSocialTwitter{background:#0f1419}.style1.dmSocialGooglePlus,.style4.dmSocialGooglePlus{background:#da4835}\n.style1.dmSocialInstagram,.style4.dmSocialInstagram{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)!important}.style1.dmSocialYoutube,.style4.dmSocialYoutube{background:red}\n.style1.dmSocialLinkedin,.style4.dmSocialLinkedin{background:#2867b2}.style1.dmSocialYelp,.style4.dmSocialYelp{background:#e43340}.style1.dmSocialPinterest,.style4.dmSocialPinterest{background:#c8232c}\n.style1.dmSocialVimeo,.style4.dmSocialVimeo{background:#1ab7ea}.style1.dmSocialPicasa,.style4.dmSocialPicasa{background:#be81d1}.style1.dmSocialFoursquare,.style4.dmSocialFoursquare{background:#ef4b78}\n.style1.dmSocialRss,.style4.dmSocialRss{background:#f39200}.style1.dmSocialReddit,.style4.dmSocialReddit{background:#ff4500}.style1.dmSocialEmail,.style4.dmSocialEmail{background:#617379}.style1.dmSocialSnapchat,.style4.dmSocialSnapchat{background:#fffc00}\n.style1.dmSocialTripadvisor,.style4.dmSocialTripadvisor{background:#589442}.style1.dmSocialWaze,.style4.dmSocialWaze{background:#56cbe7}.style1.dmSocialGoogleMyBusiness,.style4.dmSocialGoogleMyBusiness{background:#477cdf}\n.style1.dmSocialWhatsapp,.style4.dmSocialWhatsapp{background:#25d366}.style1.dmSocialPhone,.style4.dmSocialPhone{background:#616c79}.style1:after{content:\"\";width:44px;height:28px;display:block;position:absolute;top:0;left:0;z-index:-1;border-radius:10px}\n.style1.dmSocialEmail:after,.style1.dmSocialFacebook:after,.style1.dmSocialFoursquare:after,.style1.dmSocialGoogleMyBusiness:after,.style1.dmSocialGooglePlus:after,.style1.dmSocialInstagram:after,.style1.dmSocialLinkedin:after,.style1.dmSocialPhone:after,.style1.dmSocialPicasa:after,.style1.dmSocialPinterest:after,.style1.dmSocialReddit:after,.style1.dmSocialRss:after,.style1.dmSocialSnapchat:after,.style1.dmSocialTripadvisor:after,.style1.dmSocialTwitter:after,.style1.dmSocialVimeo:after,.style1.dmSocialYelp:after,.style1.dmSocialYoutube:after{background:#fff;opacity:.2}\n.style2.dmSocialTiktok{color:#000}.style2.dmSocialFacebook{color:#1877f2}.style2.dmSocialTwitter{color:#0f1419}.style2.dmSocialGooglePlus{color:#da4835}.style2.dmSocialInstagram:before{background-image:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)!important;-webkit-background-clip:text;-webkit-text-fill-color:transparent}\n.style2.dmSocialYoutube{color:red}.style2.dmSocialLinkedin{color:#2867b2}.style2.dmSocialYelp{color:#e43340}.style2.dmSocialPinterest{color:#c8232c}.style2.dmSocialVimeo{color:#1ab7ea}.style2.dmSocialPicasa{color:#be81d1}\n.style2.dmSocialFoursquare{color:#ef4b78}.style2.dmSocialRss{color:#f39200}.style2.dmSocialReddit{color:#ff4500}.style2.dmSocialEmail{color:#617379}.style2.dmSocialSnapchat{color:#fffc00}.style2.dmSocialTripadvisor{color:#589442}\n.style2.dmSocialGoogleMyBusiness:before{color:#477cdf}.style2.dmSocialWaze:before{color:#56cbe7}.style2.dmSocialWhatsapp:before{color:#25d366}.style2.dmSocialPhone{color:#616c79}.style6.dmSocialTiktok{background:#000}\n.style6.dmSocialFacebook{background:#1877f2}.style6.dmSocialTwitter{background:#0f1419}.style6.dmSocialGooglePlus{background:#da4835}.style6.dmSocialInstagram{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)!important}\n.style6.dmSocialYoutube{background:red}.style6.dmSocialLinkedin{background:#2867b2}.style6.dmSocialYelp{background:#e43340}.style6.dmSocialPinterest{background:#c8232c}.style6.dmSocialVimeo{background:#1ab7ea}\n.style6.dmSocialPicasa{background:#be81d1}.style6.dmSocialFoursquare{background:#ef4b78}.style6.dmSocialRss{background:#f39200}.style6.dmSocialReddit{background:#ff4500}.style6.dmSocialEmail{background:#617379}\n.style6.dmSocialSnapchat{background:#fffc00}.style6.dmSocialTripadvisor{background:#589442}.style6.dmSocialWaze{background:#56cbe7}.style6.dmSocialGoogleMyBusiness{background:#477cdf}.style6.dmSocialWhatsapp{background:#25d366}\n.style6.dmSocialPhone{background:#616c79}.style7.dmSocialTiktok{background:#000}.style7.dmSocialFacebook{background:#1877f2;box-shadow:0 5px 0 0 #4b68a5}.style7.dmSocialTwitter{background:#0f1419}.style7.dmSocialGooglePlus{background:#da4835;box-shadow:0 5px 0 0 #c44130}\n.style7.dmSocialInstagram{box-shadow:0 5px 0 0 #ad2271;background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)!important}.style7.dmSocialYoutube{background:red;box-shadow:0 5px 0 0 #b3392c}\n.style7.dmSocialLinkedin{background:#2867b2;box-shadow:0 5px 0 0 #1278b1}.style7.dmSocialYelp{background:#e43340;box-shadow:0 5px 0 0 #b62933}.style7.dmSocialPinterest{background:#c8232c;box-shadow:0 5px 0 0 #a21a2d}\n.style7.dmSocialVimeo{background:#1ab7ea;box-shadow:0 5px 0 0 #1592bb}.style7.dmSocialPicasa{background:#be81d1;box-shadow:0 5px 0 0 #9867a7}.style7.dmSocialFoursquare{background:#ef4b78;box-shadow:0 5px 0 0 #da3b67}\n.style7.dmSocialRss{background:#f39200;box-shadow:0 5px 0 0 #c27500}.style7.dmSocialReddit{background:#ff4500;box-shadow:0 5px 0 0 #ae5534}.style7.dmSocialEmail{background:#617379;box-shadow:0 5px 0 0 #475459}\n.style7.dmSocialSnapchat{background:#fffc00;box-shadow:0 5px 0 0 #d1d05d}.style7.dmSocialTripadvisor{background:#589442;box-shadow:0 5px 0 0 #4e7b3e}.style7.dmSocialWaze{background:#56cbe7;box-shadow:0 5px 0 0 #475459}\n.style7.dmSocialGoogleMyBusiness{background:#477cdf;box-shadow:0 5px 0 0 #475459}.style7.dmSocialWhatsapp{background:#25d366;box-shadow:0 5px 0 0 #475459}.style7.dmSocialPhone{background:#616c79;box-shadow:0 5px 0 0 #4a5458}","isHomePage":false,"customwidgetsdata":[{"widgetId":"9125cac542be4d919794dce627ab9719","version":37,"js":"Y29uc29sZS5sb2coImRhdGEuY29uZmlnLS0iLGFwaSk7DQp2YXIga25vY2tfY29udGFpbmVyID0gZGF0YS5jb25maWcua25vY2tfY29udGFpbmVyOw0KalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpew0KICAgIGlmKGRhdGEuaW5FZGl0b3IgPT0gdHJ1ZSkNCiAgICB7DQogICAgICAgIGpRdWVyeSgiLmluRWRpdG9yRWRpdExheW91dCIpLnNob3coKTsNCiAgICB9DQogICAgLy8vLy8vLy8vLy8vLy8vLy8vS25vY2sgU2NoZWR1bGVyIENvbnRhaW5lcg0KICAgIGlmKGtub2NrX2NvbnRhaW5lcikNCiAgICB7DQogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdLbm9jayBsaWJyYXJ5IGxvYWRlZCcpOw0KICAgICAgICAgICAgaWYod2luZG93Lmtub2NrRG9vcndheSA9PT0gdW5kZWZpbmVkIHx8IHdpbmRvdy5rbm9ja0Rvb3J3YXkgPT0gJ3VuZGVmaW5lZCcpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZG1BUEkubG9hZFNjcmlwdCgnaHR0cHM6Ly9kb29yd2F5LmtuY2suaW8vbGF0ZXN0L2Rvb3J3YXkubWluLmpzJywgZnVuY3Rpb24oKSB7IA0KICAgICAgICAJICAgICAgICAvLyBydW4gaW5pdCBjb2RlIGFmdGVyIGxpYnJhcnkgbG9hZHMNCiAgICAgICAgICAgICAgICAJa25vY2tDb250YWluZXJMb2FkKCk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAga25vY2tDb250YWluZXJMb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgfSwxMCk7DQogICAgICAgIA0KICAgICAgICANCiAgICB9DQogICAgDQp9KTsNCmZ1bmN0aW9uIGtub2NrQ29udGFpbmVyTG9hZCgpew0KICAgIHZhciBrbm9ja19jb250YWluZXJfdG9rZW4gPSBkYXRhLmNvbmZpZy5rbm9ja19jb250YWluZXJfdG9rZW47DQogICAgdmFyIGNvbnRhaW5lcl9jb21tX2lkID0gZGF0YS5jb25maWcuY29udGFpbmVyX2NvbW1faWQ7DQogICAgdmFyIGtub2NrX2NvbnRhaW5lcl90eXBlID0gZGF0YS5jb25maWcua25vY2tfY29udGFpbmVyX3R5cGU7DQogICAgdmFyIGtub2NrX2NoYXRib3QgPSBkYXRhLmNvbmZpZy5rbm9ja19jaGF0Ym90Ow0KICAgIGlmKGtub2NrX2NvbnRhaW5lcl90b2tlbiAhPSIiICYmIGNvbnRhaW5lcl9jb21tX2lkICE9ICIiICYmIGtub2NrX2NvbnRhaW5lcl90eXBlICE9ICIiKQ0KICAgIHsNCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpew0KICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhrbm9ja19jb250YWluZXJfdG9rZW4gLCBjb250YWluZXJfY29tbV9pZCAsIGtub2NrX2NvbnRhaW5lcl90eXBlKTsNCiAgICAgICAgICAgIHdpbmRvdy5rbm9ja0Rvb3J3YXkuaW5pdChrbm9ja19jb250YWluZXJfdG9rZW4sICdjb21tdW5pdHknLCBjb250YWluZXJfY29tbV9pZCx7ZW1iZWRkaW5nOiB7cGFnZToga25vY2tfY29udGFpbmVyX3R5cGUsIGNvbnRhaW5lcjogJ0tub2NrQ29udGFpbmVyJywgc2hvd0NoYXRib3Q6IGtub2NrX2NoYXRib3R9fSk7DQogICAgICAgIH0sMCk7DQogICAgfQ0KfQ0KDQoNCg0K","css":".inEditorEditLayout {\n position: relative;\n display: none;\n text-align: center;\n margin-right: 0;\n margin-left: auto;\n margin-bottom: 10px;\n cursor: pointer;\n padding: 5px;\n font-size: 12px;\n background-color: #333;\n width: auto;\n max-width: 130px;\n color: #fff;\n top: 0;\n right: 0;\n z-index: 10;\n}\n\n.tbContainer {\n display: flex;\n flex-wrap: wrap;\n margin: 0 auto;\n align-items: center;\n justify-content: center;\n}\n\n.tbContainer button.tbBtn1 {\n font-size: 18px;\n font-weight: normal;\n width: 250px;\n height: 55px;\n margin: 5px;\n padding: 10px 20px;\n border-radius: 5px;\n transition: all 120ms;\n cursor: pointer;\n}\n\n.tbContainer button.tbBtn1 {\n color: #fff;\n border: none;\n background-color: #017AFD;\n}\n\n.tbContainer button.tbBtn1:hover {\n background-color: #0475ed;\n}\n\n/*Error Message*/\n.buttonErrorMsg {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 15px;\n border-radius: 8px;\n max-width: 200px;\n margin: 0 auto;\n background-color: #f27255 !important;\n transition: all 0.15s;\n}\n\n.buttonErrorMsg:hover {\n background-color: #DC502F !important;\n}\n\n.buttonErrorMsg a {\n color: #fff !important;\n text-decoration: none !important;\n font-size: 15px !important;\n}\n\n.errMsgCont {\n position: relative;\n display: block;\n width: 100%;\n height: auto;\n line-height: normal;\n font-size: 20px;\n text-align: center;\n margin-bottom: 20px;\n}\n","strings":{}},{"widgetId":"b1e66263855b444897eb558f506f1b9a","version":516,"js":"Y29uc29sZS5sb2coIiAzMzMzMyAiLCQoZWxlbWVudCkpOw0KLy9jb25zb2xlLmxvZygiIDg4ODggIixkYXRhLmNvbmZpZyk7DQpsZXQgbGF5b3V0ID0gZGF0YS5jb25maWcubGF5b3V0Ow0KbGV0IGFuaW1hdGVkX2VmZmVjdCA9IGZhbHNlOw0KbGV0IHNob3dPbiA9IGRhdGEuY29uZmlnLnNob3dPbjsNCnZhciBjaGVja0hvbWVQYWdlID0gZmFsc2U7DQp2YXIgY2hlY2tfYnlfZGF0ZSA9IGRhdGEuY29uZmlnLmNoZWNrX2J5X2RhdGU7DQp2YXIgYWx3YXlzX2ZpeGVkID0gZGF0YS5jb25maWcuYWx3YXlzX2ZpeGVkOw0KdmFyIGFsd2F5c192aXNpYmxlX29uX3RvcCA9IGRhdGEuY29uZmlnLmFsd2F5c192aXNpYmxlX29uX3RvcDsNCnZhciBsaW5rdG9Cb3ggPSBkYXRhLmNvbmZpZy5saW5rdG9Cb3g7DQoNCmxldCBkYXRlRnJvbSA9IG5ldyBEYXRlKHJlbW92ZUV4dHJhKGRhdGEuY29uZmlnLmRhdGVGcm9tKSk7DQpsZXQgZGF0ZVRvID0gbmV3IERhdGUocmVtb3ZlRXh0cmEoZGF0YS5jb25maWcuZGF0ZVRvKSk7DQpsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpOw0KDQp2YXIgYXB0c3luY19zcGVjaWFsID0gZGF0YS5jb25maWcuYXB0c3luY19zcGVjaWFsOw0KLy9ycmFjX2VudHJhdGFfc3BlY2lhbF92aWV3DQoNCnZhciBwdXRjb250ZW50b2h0bWwgPSB0cnVlOw0KaWYoIWRhdGEuaW5FZGl0b3IpIHsNCiAgICBpZihjaGVja19ieV9kYXRlKSB7DQogICAgICAgIGlmKHRvZGF5ID49IGRhdGVGcm9tICYmIHRvZGF5IDw9IGRhdGVUbykgew0KICAgICAgICAgICAgcHV0Y29udGVudG9odG1sID0gdHJ1ZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIHB1dGNvbnRlbnRvaHRtbCA9IGZhbHNlOw0KICAgICAgICB9DQogICAgfQ0KfQ0KDQppZihhcHRzeW5jX3NwZWNpYWwpIHB1dGNvbnRlbnRvaHRtbCA9IHRydWU7DQoNCmlmKHB1dGNvbnRlbnRvaHRtbCkgew0KICAgIGlmKGxheW91dCAgPT0gInRoZW1lMSIpIHsNCiAgICAgICAgdmFyIGRhdGFzbGlkZXJEZXNjcmlwdGlvbiA9IHJlbW92ZUV4dHJhUHRhZyhkYXRhLmNvbmZpZy5zbGlkZXJEZXNjcmlwdGlvbik7DQogICAgICAgIHZhciBzbGlkZXJEaXNjbGFpbWVyID0gcmVtb3ZlRXh0cmFQdGFnKGRhdGEuY29uZmlnLnNsaWRlckRpc2NsYWltZXIpOw0KICAgICAgICB2YXIgc2xpZGVyVGl0bGVjb25maWcgPSByZW1vdmVFeHRyYVB0YWcoZGF0YS5jb25maWcuc2xpZGVyVGl0bGUpOw0KICAgICAgICANCiAgICAgICAgJChlbGVtZW50KS5maW5kKCIud3JhcCAudGl0bGUiKS5odG1sKHNsaWRlclRpdGxlY29uZmlnKTsNCiAgICAgICAgJChlbGVtZW50KS5maW5kKCIud3JhcCAuZGVzY3JpcHRpb24iKS5odG1sKGRhdGFzbGlkZXJEZXNjcmlwdGlvbik7DQogICAgICAgICQoZWxlbWVudCkuZmluZCgiLndyYXAgLmNvcHlyaWdodCIpLmh0bWwoc2xpZGVyRGlzY2xhaW1lcik7DQogICAgfSBlbHNlIHsNCiAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciAuaGVhZGVyLXRpdGxlIikuaHRtbChkYXRhLmNvbmZpZy5zbGlkZXJUaXRsZSk7DQogICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIgLmhlYWRlci1zdWJ0aXRsZSIpLmh0bWwoZGF0YS5jb25maWcuc2xpZGVyRGVzY3JpcHRpb24pOw0KICAgIH0NCn0NCg0KaWYoc2hvd09uID09ICdob21lJykNCnsNCiAgICBjaGVja0hvbWVQYWdlID0gdHJ1ZTsNCn0NCi8vY29uc29sZS5sb2cod2luZG93LmxvY2F0aW9uKQ0KY29uc3QgVXJsUGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsNCi8vY29uc29sZS5sb2coVXJsUGF0aCk7DQppZiggKGNoZWNrSG9tZVBhZ2UgJiYgKFVybFBhdGggPT0gJy8nIHx8IFVybFBhdGggPT0gJycgfHwgVXJsUGF0aCA9PSAnaG9tZScgfHwgVXJsUGF0aCA9PSAnL2hvbWUnKSkgfHwgIWNoZWNrSG9tZVBhZ2UgfHwgZGF0YS5pbkVkaXRvcikNCnsNCiAgICAkKGVsZW1lbnQpLmZpbmQoJy53aWRnZXQtYjFlNjYyJykuc2hvdygpOw0KICAgIGlmKGRhdGEuY29uZmlnLmFuaW1hdGVkX2VmZmVjdCAhPSB1bmRlZmluZWQpDQogICAgew0KICAgICAgICBhbmltYXRlZF9lZmZlY3QgPSBkYXRhLmNvbmZpZy5hbmltYXRlZF9lZmZlY3Q7DQogICAgfQ0KICAgIGlmKGxheW91dCAgPT0gImRyb3BfdGhlbWUiKSB7DQogICAgICAgIGxldCBpbm5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuY2hpbGRyZW4oKS5sZW5ndGg7DQogICAgICAgIGNvbnNvbGUubG9nKCJpbm5lckhlaWdodCIsJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5jaGlsZHJlbigpKTsNCiAgICB9IGVsc2Ugew0KICAgICAgICBsZXQgaW5uZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuY2hpbGRyZW4oKS5sZW5ndGg7DQogICAgICAgIGNvbnNvbGUubG9nKCJpbm5lckhlaWdodCIsJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmNoaWxkcmVuKCkpOw0KICAgIH0NCiAgICANCiAgICANCiAgICBsZXQgaXNGYWRlT3V0ID0gZGF0YS5jb25maWcuaXNGYWRlT3V0Ow0KICAgIA0KICAgIGxldCBkZCA9IFN0cmluZyh0b2RheS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcnKTsNCiAgICBsZXQgbW0gPSBTdHJpbmcodG9kYXkuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7IC8vSmFudWFyeSBpcyAwIQ0KICAgIGxldCB5eXl5ID0gdG9kYXkuZ2V0RnVsbFllYXIoKTsNCiAgICANCiAgICBsZXQgc2xpZGVyRGVzY3JpcHRpb24gPSBkYXRhLmNvbmZpZy5zbGlkZXJEZXNjcmlwdGlvbjsNCiAgICBsZXQgb25seVRleHREZXNjcmlwdGlvbiA9IHJlbW92ZVRhZ3Moc2xpZGVyRGVzY3JpcHRpb24pOw0KICAgIGlmKG9ubHlUZXh0RGVzY3JpcHRpb24gPT0gIiIpDQogICAgew0KICAgICAgICAkKGVsZW1lbnQpLmZpbmQoJy5oZWFkZXItc3VidGl0bGUnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIGluaXRpYWxQYWRkaW5nID0gdHJ1ZTsNCiAgICB2YXIgY3VycmVudFZTY3JvbGwgPSB3aW5kb3cuc2Nyb2xsWTsNCiAgICBpZihjdXJyZW50VlNjcm9sbCA+IDEwMCkNCiAgICB7DQogICAgICAgaW5pdGlhbFBhZGRpbmcgPSBmYWxzZTsNCiAgICB9DQogICAgLy9hbGVydChjdXJyZW50VlNjcm9sbCk7DQogICAgDQogICAgLy9DVVJSRU5UIERBVEUNCiAgICAvLyB0b2RheSA9IG1tICsgJy8nICsgZGQgKyAnLycgKyB5eXl5Ow0KICAgIA0KICAgIC8vYXV0byBwb3ANCiAgICB2YXIgYXV0b3BvcCA9IGRhdGEuY29uZmlnLmF1dG9wb3A7DQogICAgdmFyIGF1dG9wb3BfdGltZSA9IGRhdGEuY29uZmlnLmF1dG9wb3BfdGltZTsNCiAgICANCiAgICBpZihkYXRhLmNvbmZpZy5hdXRvcG9wX3RpbWUgPT0gdW5kZWZpbmVkIHx8IGRhdGEuY29uZmlnLmF1dG9wb3BfdGltZSA9PSAnJykNCiAgICAgICAgYXV0b3BvcF90aW1lID0gMTAwMDsNCiAgICANCiAgICBpZihhcHRzeW5jX3NwZWNpYWwgJiYgbGF5b3V0ID09ICJ0aGVtZTIiICYmIGF1dG9wb3AgJiYgYXV0b3BvcF90aW1lIDwgMjAwMCkgew0KICAgICAgICBhdXRvcG9wX3RpbWUgPSAyMDAwOw0KICAgIH0NCiAgICANCiAgICB2YXIgY2xvc2VvbmNsb3NlYnRuID0gdHJ1ZTsNCiAgICANCiAgICAkKGVsZW1lbnQpLmZpbmQoIi5vcGVuIikuY2xpY2soZnVuY3Rpb24oKSB7DQogICAgICAgICQoZWxlbWVudCkuZmluZCgiI3NsaWRlaXQgc2VjdGlvbiIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMCUpIik7DQogICAgfSk7DQogICAgDQogICAgJChlbGVtZW50KS5maW5kKCIuY2xvc2UiKS5jbGljayhmdW5jdGlvbigpIHsNCiAgICAgICAgJChlbGVtZW50KS5maW5kKCIjc2xpZGVpdCBzZWN0aW9uIikuY3NzKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlWSgxMDAlKSIpOw0KICAgIH0pOw0KICAgIGlmKGxheW91dCA9PSAidGhlbWUyIiAmJiBkYXRhLmluRWRpdG9yKSB7DQogICAgICAgICQoJ2JvZHknKS5hZGRDbGFzcygnU3BlY2lhbE9mZmVyVGFiT3BlbicpOw0KICAgIH0NCiAgICBsZXQgY29udGFpbmVySGVpZ2h0ID0gMDsNCiAgICBsZXQgbmV3Y29udGFpbmVySGVpZ2h0ID0gMDsNCiAgICB2YXIgc2V0YXV0b3BvcHNoID0gc2hvd3BvcHVwX2J5X2RhdGUgPSBmYWxzZTsNCiAgICBpZighZGF0YS5pbkVkaXRvcikgew0KICAgICAgICBpZihjaGVja19ieV9kYXRlKSB7DQogICAgICAgICAgICBpZih0b2RheSA+PSBkYXRlRnJvbSAmJiB0b2RheSA8PSBkYXRlVG8pIHsNCiAgICAgICAgICAgICAgICBzaG93cG9wdXBfYnlfZGF0ZSA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBzaG93cG9wdXBfYnlfZGF0ZSA9IHRydWU7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGlmKGFwdHN5bmNfc3BlY2lhbCkgc2hvd3BvcHVwX2J5X2RhdGUgPSB0cnVlOw0KICAgICAgICANCiAgICAgICAgaWYoc2hvd3BvcHVwX2J5X2RhdGUpIHsNCiAgICAgICAgICAgIGlmKGxheW91dCA9PSAidGhlbWUyIikgew0KICAgICAgICAgICAgICAgIC8vL2JvZHkgYWRkIGNsYXNzIGZvciBvZmZlciBwb3B1cCB0aGVtZSAyDQogICAgICAgICAgICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdTcGVjaWFsT2ZmZXJQb3B1cEV4aXN0Jyk7DQogICAgICAgICAgICAgICAgaWYoYXV0b3BvcCkgew0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikub3V0ZXJIZWlnaHQoKTsNCiAgICAgICAgICAgICAgICAgICAgLy9sZXQgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmlubmVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5jc3MoJ2Rpc3BsYXknLCdub25lJyk7DQoNCiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpew0KICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdTcGVjaWFsT2ZmZXJUYWJPcGVuJyk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZigkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuZmluZCgnYScpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5maW5kKCdhJykuYWRkQ2xhc3MoJ2hlYWRlci1hbmNob3InKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9jb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuaW5uZXJIZWlnaHQoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjb250YWluZXJIZWlnaHQnLGNvbnRhaW5lckhlaWdodCxhdXRvcG9wX3RpbWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gcGFyc2VJbnQoY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vbGV0IGNvbnRhaW5lckhlaWdodCA9IGRhdGEuZGV2aWNlICE9ICJtb2JpbGUiID8gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCkgOiBwYXJzZUludCgkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikub3V0ZXJIZWlnaHQoKSkgKyBwYXJzZUludCgkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIiKS5vdXRlckhlaWdodCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coY29udGFpbmVySGVpZ2h0LCAiaGVpZ2h0Iik7DQogICAgICAgICAgICAgICAgICAgICAgICBzZXRhdXRvcG9wc2ggPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3BhcnNlSW50Y29udGFpbmVySGVpZ2h0Jyxjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJCh3aW5kb3cpLnNjcm9sbFRvcCgpIDwgMTAwICYmIHBhcnNlSW50KGlubmVySGVpZ2h0KSA+IDApIA0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9IHBhcnNlSW50KGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoaW5pdGlhbFBhZGRpbmcgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsIGAke2NvbnRhaW5lckhlaWdodH1weGApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHskKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikub3V0ZXJIZWlnaHQoKX1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0sIGF1dG9wb3BfdGltZSk7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdTcGVjaWFsT2ZmZXJUYWJPcGVuJyk7DQogICAgICAgICAgICAgICAgICAgIHNldGF1dG9wb3BzaCA9IHRydWU7DQogICAgDQogICAgICAgICAgICAgICAgICAgIGlmKCBwYXJzZUludChpbm5lckhlaWdodCkgPiAwKSAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuY3NzKCdkaXNwbGF5JywnYmxvY2snKTsNCiAgICANCiAgICAgICAgICAgICAgICAgICAgaWYoJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmZpbmQoJ2EnKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmZpbmQoJ2EnKS5hZGRDbGFzcygnaGVhZGVyLWFuY2hvcicpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICAvL2NvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5pbm5lckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSBwYXJzZUludChjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAvL2xldCBjb250YWluZXJIZWlnaHQgPSBkYXRhLmRldmljZSAhPSAibW9iaWxlIiA/ICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5vdXRlckhlaWdodCgpIDogcGFyc2VJbnQoJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCkpICsgcGFyc2VJbnQoJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyIikub3V0ZXJIZWlnaHQoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coY29udGFpbmVySGVpZ2h0LCAiaGVpZ2h0Iik7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnY29udGFpbmVySGVpZ2h0Jyxjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgaWYoYXB0c3luY19zcGVjaWFsKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZihpbml0aWFsUGFkZGluZyAmJiBwYXJzZUludChpbm5lckhlaWdodCkgPiAwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsIGAke2NvbnRhaW5lckhlaWdodH1weGApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgkeyQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5vdXRlckhlaWdodCgpfXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAvL211dGF0aW9uIGNoZWNrDQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBqb2J0YXJnZXROb2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnJyYWNfZW50cmF0YV9zcGVjaWFsX3ZpZXcnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGpvYmNvbmZpZyA9IHsgY2hpbGRMaXN0OiB0cnVlIH07DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9uc0xpc3QpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9uc0xpc3QpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnICYmIG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8kKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuY3NzKCdkaXNwbGF5JywnYmxvY2snKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCQoZWxlbWVudCkuZmluZCgiLm5vX3BvcHVwX21zZyIpLmxlbmd0aCA+IDAgfHwgJChlbGVtZW50KS5maW5kKCcucnJhY19lbnRyYXRhX3NwZWNpYWxfdmlldycpLmlubmVySGVpZ2h0KCkgPT0gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLnJyYWNfZW50cmF0YV9zcGVjaWFsX3ZpZXciKS5yZW1vdmUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuY3NzKCJwYWRkaW5nIiwnMHB4Jyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gcGFyc2VJbnQoY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoaW5pdGlhbFBhZGRpbmcgJiYgcGFyc2VJbnQoaW5uZXJIZWlnaHQpID4gMCkgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7JChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCl9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0IG9ic2VydmluZyANCiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoam9idGFyZ2V0Tm9kZSwgam9iY29uZmlnKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGluaXRpYWxQYWRkaW5nICYmIHBhcnNlSW50KGlubmVySGVpZ2h0KSA+IDApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgkeyQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5vdXRlckhlaWdodCgpfXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDMwMCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgbGV0IHNob3dsb2NrID0gZmFsc2U7DQogICAgICAgICAgICAgICAgbGV0IGhpZGVsb2NrID0gZmFsc2U7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgJCh3aW5kb3cpLnNjcm9sbChmdW5jdGlvbigpew0KICAgICAgICAgICAgICAgICAgICBpZihjb250YWluZXJIZWlnaHQgPT0gMCB8fCBhcHRzeW5jX3NwZWNpYWwpew0KICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5pbm5lckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gcGFyc2VJbnQoY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgaWYoY2xvc2VvbmNsb3NlYnRuKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiAoJCh3aW5kb3cpLnNjcm9sbFRvcCgpID49IDEwMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nKCJzY3JvbGwgdGhlbWUgMiBkYXRlIik7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmhpZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsICIwcHgiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMHB4KSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gfQ0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLnNob3coKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBjb25zb2xlLmxvZyhjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7JChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCl9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyB9DQogICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGNsb3Nlb25jbG9zZWJ0bik7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh3aW5kb3cpLnNjcm9sbFRvcCgpID49IDEwMCkgDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygic2Nyb2xsIHRoZW1lIDIgaGlkZSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmhpZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhbmltYXRlZF9lZmZlY3QpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZighaGlkZWxvY2spDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5hbmltYXRlKHtoZWlnaHQ6MCxwYWRkaW5nOjB9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuYW5pbWF0ZSh7cGFkZGluZ1RvcDowfSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgIjBweCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5hZGRDbGFzcygnaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXItYW5pbWF0ZS10b3AnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlWSgwcHgpIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZWxvY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93bG9jayA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuaGlkZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsICIwcHgiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLnJlbW92ZUNsYXNzKCdTcGVjaWFsT2ZmZXJUYWJPcGVuJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSANCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCJzY3JvbGwgdGhlbWUgMiBzaG93Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8kKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuc2hvdygpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNldGF1dG9wb3BzaCl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFuaW1hdGVkX2VmZmVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygic2VjaGV0Iixjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9pZighc2hvd2xvY2sgJiYgJCh3aW5kb3cpLnNjcm9sbFRvcCgpICE9IDApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZighc2hvd2xvY2spDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmFuaW1hdGUoe2hlaWdodDpjb250YWluZXJIZWlnaHQscGFkZGluZzonMjBweCA1MHB4J30sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuYW5pbWF0ZSh7cGFkZGluZ1RvcDpjb250YWluZXJIZWlnaHR9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCBgJHtjb250YWluZXJIZWlnaHR9cHhgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmFkZENsYXNzKCdoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lci1hbmltYXRlLXRvcCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZWxvY2sgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dsb2NrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBwYXJzZUludChpbm5lckhlaWdodCkgPiAwKSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuY3NzKCdkaXNwbGF5JywnYmxvY2snKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhdXRvcG9wKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSBwYXJzZUludChjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsIGAke2NvbnRhaW5lckhlaWdodH1weGApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykuYWRkQ2xhc3MoJ1NwZWNpYWxPZmZlclRhYk9wZW4nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQogICAgICAgICAgICAgICAgJCgiLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikub24oJ2NsaWNrJyxmdW5jdGlvbigpew0KICAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRWU2Nyb2xsSEJNZW51ID0gd2luZG93LnNjcm9sbFk7DQogICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIC8vYWRkZWQgZm9yIG1vYmlsZSBkZXZpY2UgYW5kIGR1ZGEgbmV3IHVwZGF0ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuZGV2aWNlPT09Im1vYmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCQodGhpcykpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCEkKCcubGF5b3V0LWRyYXdlci1oYW1idXJnZXInKS5oYXNDbGFzcygnaGFtYnVyZ2VyLW9uLWhlYWRlcicpICYmICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5oYXNDbGFzcygnaGlkZVRoaXNPZmZlcicpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnRvZ2dsZUNsYXNzKCdoYW1idXJnZXItb24taGVhZGVyJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGN1cnJlbnRWU2Nyb2xsSEJNZW51KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigkKCcubGF5b3V0LWRyYXdlci1oYW1idXJnZXInKS5oYXNDbGFzcygnaGFtYnVyZ2VyLW9uLWhlYWRlcicpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnaGlkZScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikucmVtb3ZlQ2xhc3MoJ2hpZGVUaGlzT2ZmZXInKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiYm9keSIpLnJlbW92ZUNsYXNzKCdoaWRlVGhpc09mZmVyUG9wJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBpZihjdXJyZW50VlNjcm9sbEhCTWVudSA8PSAxMDAgJiYgY2xvc2VvbmNsb3NlYnRuID09IHRydWUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNsb3Nlb25jbG9zZWJ0biA9PSB0cnVlKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuYW5pbWF0ZSh7cGFkZGluZ1RvcDpjb250YWluZXJIZWlnaHR9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gMTAwKSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCSQod2luZG93KS5zY3JvbGxUb3AoJCh3aW5kb3cpLnNjcm9sbFRvcCgpKzEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJJCh3aW5kb3cpLnNjcm9sbFRvcCgkKHdpbmRvdykuc2Nyb2xsVG9wKCktMSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ3Nob3cnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5hZGRDbGFzcygnaGlkZVRoaXNPZmZlcicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiYm9keSIpLmFkZENsYXNzKCdoaWRlVGhpc09mZmVyUG9wJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBpZihjdXJyZW50VlNjcm9sbEhCTWVudSA8PSAxMDApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuYW5pbWF0ZSh7cGFkZGluZ1RvcDowfSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0sMTAwKTsNCiAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIC8vLy9jbGljayBvbiBjbG9zZS8vLy8vLy8NCiAgICAgICAgICAgICAgICAkKCcuU1BFQ0lBTC1jbG9zZS1idG4nKS5jbGljayggZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJjbGljayBvbiBjbG9zZSIpOw0KICAgICAgICAgICAgICAgICAgICBjbG9zZW9uY2xvc2VidG4gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIGlmKGFuaW1hdGVkX2VmZmVjdCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmFuaW1hdGUoe2hlaWdodDowLHBhZGRpbmc6MH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOjB9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgIjBweCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5hZGRDbGFzcygnaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXItYW5pbWF0ZS10b3AnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlWSgwcHgpIik7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXskKCcuU1BFQ0lBTC1vcGVuLWJ0bicpLnNob3coKTt9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dsb2NrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5jc3MoJ2Rpc3BsYXknLCdub25lJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsICIwcHgiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlWSgwcHgpIik7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCcuU1BFQ0lBTC1vcGVuLWJ0bicpLnNob3coKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykucmVtb3ZlQ2xhc3MoJ1NwZWNpYWxPZmZlclRhYk9wZW4nKTsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICQoJy5TUEVDSUFMLW9wZW4tYnRuJykuY2xpY2soIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiY2xpY2sgb24gb3BlbiIpOw0KICAgICAgICAgICAgICAgICAgICBjbG9zZW9uY2xvc2VidG4gPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgaWYoYW5pbWF0ZWRfZWZmZWN0KQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuYW5pbWF0ZSh7aGVpZ2h0OmNvbnRhaW5lckhlaWdodCxwYWRkaW5nOicyMHB4IDUwcHgnfSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmFuaW1hdGUoe3BhZGRpbmdUb3A6Y29udGFpbmVySGVpZ2h0fSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAvLyQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmFkZENsYXNzKCdoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lci1hbmltYXRlLXRvcCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgnLlNQRUNJQUwtb3Blbi1idG4nKS5oaWRlKCk7fSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICBzaG93bG9jayA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHBhcnNlSW50KGlubmVySGVpZ2h0KSA+IDApIA0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5TUEVDSUFMLW9wZW4tYnRuJykuaGlkZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdTcGVjaWFsT2ZmZXJUYWJPcGVuJyk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICANCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmKGxheW91dCA9PSAidGhlbWUxIikgew0KICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiI3NsaWRlaXQiKS5zaG93KCk7DQogICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCAiMHB4Iik7DQogICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBpZihhdXRvcG9wKSB7DQogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIjc2xpZGVpdCBzZWN0aW9uIikuY3NzKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlWSgwJSkiKTsNCiAgICAgICAgICAgICAgICAgICAgfSwgYXV0b3BvcF90aW1lKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgaWYoaXNGYWRlT3V0KSB7DQogICAgICAgICAgICAgICAgICAgIGZhZGVPdXRPblNjcm9sbCgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmKGxheW91dCA9PSAiZHJvcF90aGVtZSIpIHsNCiAgICAgICAgICAgICAgICBpZihhbHdheXNfdmlzaWJsZV9vbl90b3AgJiYgYWx3YXlzX2ZpeGVkKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBjaGVja2tpY2tvbnBvcHVwID0gMDsNCiAgICAgICAgICAgICAgICAgICAgaWYobGlua3RvQm94KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoJy5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9CdG4nKS5hdHRyKCJzdHlsZSIsICJkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Iik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYoJChlbGVtZW50KS5maW5kKCcub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjRfZGVzY3JpcHRpb24nKS50ZXh0KCkgPT0gJycpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgnLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X2Rlc2NyaXB0aW9uJykuaGlkZSgpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ2dkZ2RnJywkKGVsZW1lbnQpLmZpbmQoJy5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9kZXNjcmlwdGlvbicpLCAkKGVsZW1lbnQpLmZpbmQoJy5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9kZXNjcmlwdGlvbicpLnRleHQoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC8vZmlyc3QgbG9hZCB0aW1lDQogICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgIHZhciBmaXhlZGlubmVyaGVpZ2h0ID0gcGFyc2VJbnQoY29udGFpbmVySGVpZ2h0KTsgLy9mb3IgZml4ZWQgZWZmZWN0DQogICAgICAgICAgICAgICAgaWYoYXV0b3BvcCkgew0KICAgICAgICAgICAgICAgICAgICAvLyQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuY3NzKCdkaXNwbGF5Jywnbm9uZScpOw0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHBhcnNlSW50KGlubmVySGVpZ2h0KSA+IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPCAxMDAgfHwgYWx3YXlzX2ZpeGVkKSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuY3NzKCdkaXNwbGF5JywnYmxvY2snKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0Iikub3V0ZXJIZWlnaHQoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gcGFyc2VJbnQoY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZWRpbm5lcmhlaWdodCA9IGNvbnRhaW5lckhlaWdodDsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsIGAke2NvbnRhaW5lckhlaWdodH1weGApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5hZGRDbGFzcygnU3BlY2lhbE9mZmVyUG9wdXBPcGVuX1QzJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9LCBhdXRvcG9wX3RpbWUpOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGlmKCBwYXJzZUludChpbm5lckhlaWdodCkgPiAwKSAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLmNzcygnZGlzcGxheScsJ2Jsb2NrJyk7DQogICAgICAgIA0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9IHBhcnNlSW50KGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgIGZpeGVkaW5uZXJoZWlnaHQgPSBjb250YWluZXJIZWlnaHQ7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJoZWlnaHQiLCBjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgLy9jYWxjdWxhdGUgZGVzY3JpcHRpb24gaGVpZ2h0DQogICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IC5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9jb250YW50IikuY3NzKCJvcGFjaXR5IiwgMCk7DQogICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IC5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9jb250YW50IikuY3NzKCdkaXNwbGF5JywgJ2Jsb2NrJyk7DQogICAgICAgICAgICAgICAgICAgIG5ld2NvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0Iikub3V0ZXJIZWlnaHQoKTsNCiAgICAgICAgICAgICAgICAgICAgbmV3Y29udGFpbmVySGVpZ2h0ID0gcGFyc2VJbnQobmV3Y29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQgLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X2NvbnRhbnQiKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOw0KICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCAub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjRfY29udGFudCIpLmNzcygib3BhY2l0eSIsIDEpOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiggcGFyc2VJbnQoaW5uZXJIZWlnaHQpID4gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGluaXRpYWxQYWRkaW5nIHx8IGFsd2F5c19maXhlZCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCBgJHtjb250YWluZXJIZWlnaHR9cHhgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykuYWRkQ2xhc3MoJ1NwZWNpYWxPZmZlclBvcHVwT3Blbl9UMycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIHZhciBjaGVja2ZpeGVkc2Nyb2xsID0gMDsNCiAgICAgICAgICAgICAgICAvL29uIHdpbmRvdyBzY3JvbGwgZWZmZWN0DQogICAgICAgICAgICAgICAgJCh3aW5kb3cpLnNjcm9sbChmdW5jdGlvbigpew0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9IHBhcnNlSW50KGNvbnRhaW5lckhlaWdodCk7DQoNCiAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5yZW1vdmVDbGFzcygnaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXItYW5pbWF0ZS10b3AnKTsNCg0KICAgICAgICAgICAgICAgICAgICBpZihhbHdheXNfZml4ZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gMTAwICYmICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuaGFzQ2xhc3MoJ0Rlc2NyaXB0aW9uT3BlbicpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjRfaWNvbiIpLnRyaWdnZXIoImNsaWNrIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tmaXhlZHNjcm9sbCA9IDA7DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCQod2luZG93KS5zY3JvbGxUb3AoKSA+PSAxMDAgJiYgISQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuaGFzQ2xhc3MoJ0Rlc2NyaXB0aW9uT3BlbicpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIuc2NoZWR1bGV0b3VyX3YzX3RvcF9oZWFkZXIiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9IHBhcnNlSW50KGNvbnRhaW5lckhlaWdodCk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsIGAke2NvbnRhaW5lckhlaWdodH1weGApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gMTAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5oaWRlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCAiMHB4Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykucmVtb3ZlQ2xhc3MoJ1NwZWNpYWxPZmZlclBvcHVwT3Blbl9UMycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1cm5PRkZkZXNjcmlwdGlvbigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggcGFyc2VJbnQoaW5uZXJIZWlnaHQpID4gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLmNzcygnZGlzcGxheScsJ2Jsb2NrJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdTcGVjaWFsT2ZmZXJQb3B1cE9wZW5fVDMnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICB2YXIgY2xpY2tzZWxlY3RvciA9ICIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjRfaWNvbiwgLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X21haW5faGVhZGluZyI7DQogICAgICAgICAgICAgICAgaWYoYWx3YXlzX2ZpeGVkKSBjbGlja3NlbGVjdG9yID0gIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9pY29uIjsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAvL2NsaWNrIG9uIHRvZ2dsZQ0KICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZChjbGlja3NlbGVjdG9yKS5vbigiY2xpY2siLCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X2NvbnRhbnQiKS5zdG9wKCkuc2xpZGVUb2dnbGUoNTAwLCAic3dpbmciKTsNCiAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS50b2dnbGVDbGFzcygiRGVzY3JpcHRpb25PcGVuIik7DQogICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuYWRkQ2xhc3MoJ2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLWFuaW1hdGUtdG9wJyk7DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICBpZighJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5oYXNDbGFzcygnRGVzY3JpcHRpb25PcGVuJykpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFsd2F5c19maXhlZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOmZpeGVkaW5uZXJoZWlnaHR9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Zml4ZWRpbm5lcmhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmFuaW1hdGUoe3BhZGRpbmdUb3A6Y29udGFpbmVySGVpZ2h0fSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKG5ld2NvbnRhaW5lckhlaWdodCA+IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuYW5pbWF0ZSh7cGFkZGluZ1RvcDpuZXdjb250YWluZXJIZWlnaHR9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7bmV3Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3Y29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdjb250YWluZXJIZWlnaHQgPSBwYXJzZUludChuZXdjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiZGVzYyBoZWlnaHQiLG5ld2NvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuYW5pbWF0ZSh7cGFkZGluZ1RvcDpuZXdjb250YWluZXJIZWlnaHR9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke25ld2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCA1MTApOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgLy9jbGljayBvbiBoYW1idXJnZXINCiAgICAgICAgICAgICAgICAkKCIubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5vbignY2xpY2snLGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50VlNjcm9sbEhCTWVudSA9IHdpbmRvdy5zY3JvbGxZOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpew0KICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhjdXJyZW50VlNjcm9sbEhCTWVudSk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmFkZENsYXNzKCdoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lci1hbmltYXRlLXRvcCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJCgnLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyJykuaGFzQ2xhc3MoJ2hhbWJ1cmdlck9QRU4nKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjdXJyZW50VlNjcm9sbEhCTWVudSA8PSAxMDAgfHwgYWx3YXlzX2ZpeGVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuY3NzKCdkaXNwbGF5JywnYmxvY2snKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSBwYXJzZUludChjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuYW5pbWF0ZSh7cGFkZGluZ1RvcDpjb250YWluZXJIZWlnaHR9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdTcGVjaWFsT2ZmZXJQb3B1cE9wZW5fVDMnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcubGF5b3V0LWRyYXdlci1oYW1idXJnZXInKS5yZW1vdmVDbGFzcygnaGFtYnVyZ2VyT1BFTicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFsd2F5c192aXNpYmxlX29uX3RvcCAmJiBhbHdheXNfZml4ZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYod2luZG93LnNjcm9sbFkgPT0gMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X2ljb24iKS50cmlnZ2VyKCdjbGljaycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcubGF5b3V0LWRyYXdlci1oYW1idXJnZXInKS5hZGRDbGFzcygnaGFtYnVyZ2VyT1BFTicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuaGlkZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOjB9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykucmVtb3ZlQ2xhc3MoJ1NwZWNpYWxPZmZlclBvcHVwT3Blbl9UMycpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3RydW5vZmYgdGhlIGRlc2NyaXB0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYWx3YXlzX2ZpeGVkKSB0dXJuT0ZGZGVzY3JpcHRpb24oKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSwyMDApOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIC8vc3BlY2lhbCByZXF1ZXN0DQogICAgICAgICAgICAgICAgaWYoYWx3YXlzX3Zpc2libGVfb25fdG9wICYmIGFsd2F5c19maXhlZCkgew0KDQogICAgICAgICAgICAgICAgICAgIC8vb24gZmlyc3QgbG9hZA0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoJCh3aW5kb3cpLnNjcm9sbFRvcCgpID09IDApICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2traWNrb25wb3B1cCA9IDE7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjRfaWNvbiIpLnRyaWdnZXIoJ2NsaWNrJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0sIDEwMDApOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgLy9vbiBzY3JvbGwNCiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICQod2luZG93KS5vbigic2Nyb2xsIiwgZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnNjcm9sbFRvcCgpID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2tpY2tvbnBvcHVwID0gMTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9pY29uIikudHJpZ2dlcignY2xpY2snKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgIH0sIDIwMDApOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjRfaWNvbiIpLmNsaWNrKGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2traWNrb25wb3B1cCA9IDE7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgLy8gb24gY2xpY2sgb24gcG9wdXANCiAgICAgICAgICAgICAgICAgICAgaWYobGlua3RvQm94KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLmNsaWNrKGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNoZWNra2lja29ucG9wdXAgPT0gMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygicG9wdXBidG4iKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAkKGVsZW1lbnQpLmZpbmQoJy5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9CdG4nKS5hdHRyKCJocmVmIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2traWNrb25wb3B1cCA9IDA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuaGlkZSgpOw0KICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIjc2xpZGVpdCIpLmhpZGUoKTsNCiAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuaGlkZSgpOw0KICAgICAgICAgICAgDQogICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsICIwcHgiKTsNCiAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlWSgwcHgpIik7DQogICAgICAgICAgICANCiAgICAgICAgICAgIC8vcmVtb3ZlIHRoZSBpbm5lciBjb250ZW50DQogICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuaHRtbCgnJyk7DQogICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIiNzbGlkZWl0IikuaHRtbCgnJyk7DQogICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLmh0bWwoJycpOw0KICAgICAgICAgICAgDQogICAgICAgICAgICAkKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgaWYgKCQod2luZG93KS5zY3JvbGxUb3AoKSA+PSAxMDApIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coInNjcm9sbCB0aGVtZSBlbmQgZGF0ZSIpOw0KICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuaGlkZSgpOw0KICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsICIwcHgiKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgZnVuY3Rpb24gZmFkZU91dE9uU2Nyb2xsKCkgew0KICAgICAgICAgICAgJCh3aW5kb3cpLnNjcm9sbChmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICBpZiAoJCh3aW5kb3cpLnNjcm9sbFRvcCgpID4gMjAwKSB7DQogICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiI3NsaWRlaXQiKS5mYWRlT3V0KCk7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIjc2xpZGVpdCIpLmZhZGVJbigpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgfQ0KICAgIA0KICAgIGlmKGRhdGEuaW5FZGl0b3IpIHsNCiAgICAgICAgaWYobGF5b3V0ID09ICJ0aGVtZTIiKSB7DQogICAgICAgICAgICAvL2NoZWNrIHBvcHVwIHBhZ2UNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJkbVBvcHVwTWVzc2FnZSIsJCgnLmRtUG9wdXBNZXNzYWdlJyksJCgnYm9keScpLnRleHQoKS5pbmNsdWRlcygnRGlzcGxheSB0aGlzIHBvcHVwIHVzaW5nIGEnKSk7DQoNCiAgICAgICAgICAgIHZhciBub3R3b3JrZm9ycG9wdXAgPSB0cnVlOw0KDQogICAgICAgICAgICBpZigkKCcuZG1Qb3B1cE1lc3NhZ2UnKS5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICAgICAgbm90d29ya2ZvcnBvcHVwID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIkl0IGlzIGEgcG9wdXAgcGFnZSIpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBpZihub3R3b3JrZm9ycG9wdXApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdTcGVjaWFsT2ZmZXJQb3B1cEV4aXN0Jyk7DQogICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmNzcygnZGlzcGxheScsJ2Jsb2NrJyk7DQogICAgICAgICAgICAgICAgaWYoJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmZpbmQoJ2EnKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5maW5kKCdhJykuYWRkQ2xhc3MoJ2hlYWRlci1hbmNob3InKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgbGV0IGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgIC8vbGV0IGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5pbm5lckhlaWdodCgpOw0KICAgICAgICAgICAgICAgIC8vIGxldCBjb250YWluZXJIZWlnaHQgPSBkYXRhLmRldmljZSAhPSAibW9iaWxlIiA/ICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5vdXRlckhlaWdodCgpIDogcGFyc2VJbnQoJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCkpICsgcGFyc2VJbnQoJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyIikub3V0ZXJIZWlnaHQoKSk7DQogICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coY29udGFpbmVySGVpZ2h0LCAiaGVpZ2h0Iik7DQogICAgICAgICAgICAgICAgLy8gY29udGFpbmVySGVpZ2h0ID0gcGFyc2VJbnQoY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgIC8vY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmlubmVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNvbnRhaW5lckhlaWdodCwgImhlaWdodCIpOw0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSBwYXJzZUludChjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICBpZihwYXJzZUludChpbm5lckhlaWdodCkgPiAwICkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHskKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikub3V0ZXJIZWlnaHQoKX1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICB9LCA1MDApOw0KICAgICAgICAgICAgICAgIGxldCBzaG93bG9jayA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGxldCBoaWRlbG9jayA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICQod2luZG93KS5zY3JvbGwoZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICAgICAgaWYoY2xvc2VvbmNsb3NlYnRuKXsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coY2xvc2VvbmNsb3NlYnRuKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gMTAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygic2Nyb2xsIHRoZW1lIDIgaGlkZSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmhpZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhbmltYXRlZF9lZmZlY3QpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZighaGlkZWxvY2spDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5hbmltYXRlKHtoZWlnaHQ6MCxwYWRkaW5nOjB9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuYW5pbWF0ZSh7cGFkZGluZ1RvcDowfSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgIjBweCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5hZGRDbGFzcygnaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXItYW5pbWF0ZS10b3AnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlWSgwcHgpIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZWxvY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93bG9jayA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuY3NzKCdkaXNwbGF5Jywnbm9uZScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsICIwcHgiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLnJlbW92ZUNsYXNzKCdTcGVjaWFsT2ZmZXJUYWJPcGVuJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygic2Nyb2xsIHRoZW1lIDIgc2hvdyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFuaW1hdGVkX2VmZmVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFzaG93bG9jaykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmFuaW1hdGUoe2hlaWdodDpjb250YWluZXJIZWlnaHQscGFkZGluZzonMjBweCA1MHB4J30sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOmNvbnRhaW5lckhlaWdodH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8kKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsIGAke2NvbnRhaW5lckhlaWdodH1weGApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5hZGRDbGFzcygnaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXItYW5pbWF0ZS10b3AnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZWxvY2sgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd2xvY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCJzY3JvbGwgaGVpZ2giLGNvbnRhaW5lckhlaWdodCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsIGAke2NvbnRhaW5lckhlaWdodH1weGApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5hZGRDbGFzcygnU3BlY2lhbE9mZmVyVGFiT3BlbicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgLy8vb3BlbiBjbG9zZSBvZiBoYW1idXJnZXIgbWVudSAtLSBhcmlqaXQgc3RhcnQtLS0NCiAgICAgICAgICAgICAgICAkKCIubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5vbignY2xpY2snLGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50VlNjcm9sbEhCTWVudSA9IHdpbmRvdy5zY3JvbGxZOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgLy9hZGRlZCBmb3IgbW9iaWxlIGRldmljZSBhbmQgZHVkYSBuZXcgdXBkYXRlDQogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmRldmljZT09PSJtb2JpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZigkKCdkaXYjbGF5b3V0LWRyYXdlci1oYW1idXJnZXInKS5oYXNDbGFzcygnaGFtYnVyZ2VyLW9uLWhlYWRlcicpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnZGl2I2xheW91dC1kcmF3ZXItaGFtYnVyZ2VyJykucmVtb3ZlQ2xhc3MoJ2hhbWJ1cmdlci1vbi1oZWFkZXInKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnZGl2I2xheW91dC1kcmF3ZXItaGFtYnVyZ2VyJykuYWRkQ2xhc3MoJ2hhbWJ1cmdlci1vbi1oZWFkZXInKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIC8vJCgnZGl2I2xheW91dC1kcmF3ZXItaGFtYnVyZ2VyLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyJykudG9nZ2xlQ2xhc3MoJ2hhbWJ1cmdlci1vbi1oZWFkZXInKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coImNoZWNrIG1vYmlsZSIsZGF0YS5kZXZpY2UsJCgnLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyJykpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKGN1cnJlbnRWU2Nyb2xsSEJNZW51KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCQoJy5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlcicpLmhhc0NsYXNzKCdoYW1idXJnZXItb24taGVhZGVyJykpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnaGlkZScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5yZW1vdmVDbGFzcygnaGlkZVRoaXNPZmZlcicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoImJvZHkiKS5yZW1vdmVDbGFzcygnaGlkZVRoaXNPZmZlclBvcCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBpZihjdXJyZW50VlNjcm9sbEhCTWVudSA8PSAxMDAgJiYgY2xvc2VvbmNsb3NlYnRuID09IHRydWUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2xvc2VvbmNsb3NlYnRuID09IHRydWUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuYW5pbWF0ZSh7cGFkZGluZ1RvcDpjb250YWluZXJIZWlnaHR9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnc2hvdycpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLmhlYWRlcldyYXBwZXIiKS5hZGRDbGFzcygnaGlkZVRoaXNPZmZlcicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoImJvZHkiKS5hZGRDbGFzcygnaGlkZVRoaXNPZmZlclBvcCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBpZihjdXJyZW50VlNjcm9sbEhCTWVudSA8PSAxMDApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmFuaW1hdGUoe3BhZGRpbmdUb3A6MH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9LDIwMCk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgLy8vLWFyaWppdCBlbmQvLw0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgLy8vL2NsaWNrIG9uIGNsb3NlLy8vLy8vLw0KICAgICAgICAgICAgICAgICQoJy5TUEVDSUFMLWNsb3NlLWJ0bicpLmNsaWNrKCBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coImNsaWNrIG9uIGNsb3NlIik7DQogICAgICAgICAgICAgICAgICAgIGNsb3Nlb25jbG9zZWJ0biA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgaWYoYW5pbWF0ZWRfZWZmZWN0KQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5oZWFkZXJXcmFwcGVyIikuYW5pbWF0ZSh7aGVpZ2h0OjAscGFkZGluZzowfSw1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmFuaW1hdGUoe3BhZGRpbmdUb3A6MH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCAiMHB4Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmFkZENsYXNzKCdoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lci1hbmltYXRlLXRvcCcpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyQoJy5TUEVDSUFMLW9wZW4tYnRuJykuc2hvdygpO30sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd2xvY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmNzcygnZGlzcGxheScsJ25vbmUnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgIjBweCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5TUEVDSUFMLW9wZW4tYnRuJykuc2hvdygpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5yZW1vdmVDbGFzcygnU3BlY2lhbE9mZmVyVGFiT3BlbicpOw0KICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAkKCcuU1BFQ0lBTC1vcGVuLWJ0bicpLmNsaWNrKCBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coImNsaWNrIG9uIG9wZW4iKTsNCiAgICAgICAgICAgICAgICAgICAgY2xvc2VvbmNsb3NlYnRuID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIGlmKGFuaW1hdGVkX2VmZmVjdCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmFuaW1hdGUoe2hlaWdodDpjb250YWluZXJIZWlnaHQscGFkZGluZzonMjBweCA1MHB4J30sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOmNvbnRhaW5lckhlaWdodH0sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhjb250YWluZXJIZWlnaHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy8kKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsIGAke2NvbnRhaW5lckhlaWdodH1weGApOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5hZGRDbGFzcygnaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXItYW5pbWF0ZS10b3AnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNoYW1idXJnZXItaGVhZGVyLWNvbnRhaW5lciwgLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyIikuY3NzKCJ0cmFuc2Zvcm0iLCBgdHJhbnNsYXRlWSgke2NvbnRhaW5lckhlaWdodH1weClgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyQoJy5TUEVDSUFMLW9wZW4tYnRuJykuaGlkZSgpO30sNTAwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd2xvY2sgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHBhcnNlSW50KGlubmVySGVpZ2h0KSA+IDApDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIuaGVhZGVyV3JhcHBlciIpLmNzcygnZGlzcGxheScsJ2Jsb2NrJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI3NpdGVfY29udGVudCIpLmNzcygicGFkZGluZy10b3AiLCBgJHtjb250YWluZXJIZWlnaHR9cHhgKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnLlNQRUNJQUwtb3Blbi1idG4nKS5oaWRlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykuYWRkQ2xhc3MoJ1NwZWNpYWxPZmZlclRhYk9wZW4nKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBpZihsYXlvdXQgPT0gInRoZW1lMSIpIHsNCiAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgIjBweCIpOw0KICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgaWYobGF5b3V0ID09ICJkcm9wX3RoZW1lIikgew0KICAgICAgICAgICAgLy9maXJzdCBsb2FkDQogICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLmNzcygnZGlzcGxheScsJ2Jsb2NrJyk7DQogICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSBwYXJzZUludChjb250YWluZXJIZWlnaHQpOw0KDQogICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAgICAgICBpZiggcGFyc2VJbnQoaW5uZXJIZWlnaHQpID4gMCkgew0KICAgICAgICAgICAgICAgICAgICBpZihpbml0aWFsUGFkZGluZyB8fCBhbHdheXNfZml4ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgYCR7Y29udGFpbmVySGVpZ2h0fXB4YCk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgYHRyYW5zbGF0ZVkoJHtjb250YWluZXJIZWlnaHR9cHgpYCk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykuYWRkQ2xhc3MoJ1NwZWNpYWxPZmZlclBvcHVwT3Blbl9UMycpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwgMzAwKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLy9vbiBzY3JvbGwgZWZmZWN0DQogICAgICAgICAgICAkKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgaWYoYWx3YXlzX2ZpeGVkKSB7DQogICAgICAgICAgICAgICAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gMTAwICYmICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuaGFzQ2xhc3MoJ0Rlc2NyaXB0aW9uT3BlbicpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9pY29uIikudHJpZ2dlcigiY2xpY2siKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gMTAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLmhpZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5jc3MoInBhZGRpbmctdG9wIiwgIjBweCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsICJ0cmFuc2xhdGVZKDBweCkiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5yZW1vdmVDbGFzcygnU3BlY2lhbE9mZmVyUG9wdXBPcGVuX1QzJyk7DQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIHR1cm5PRkZkZXNjcmlwdGlvbigpOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5vdXRlckhlaWdodCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gcGFyc2VJbnQoY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLmNzcygnZGlzcGxheScsJ2Jsb2NrJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuY3NzKCJwYWRkaW5nLXRvcCIsIGAke2NvbnRhaW5lckhlaWdodH1weGApOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLmFkZENsYXNzKCdTcGVjaWFsT2ZmZXJQb3B1cE9wZW5fVDMnKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgDQogICAgICAgICAgICAvL29uIGNsaWNrIGVmZmVjdA0KICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjRfaWNvbiIpLm9uKCJjbGljayIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NF9jb250YW50Iikuc3RvcCgpLnNsaWRlVG9nZ2xlKDQwMCwgInN3aW5nIik7DQogICAgICAgICAgICAgICAgJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS50b2dnbGVDbGFzcygiRGVzY3JpcHRpb25PcGVuIik7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9ICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0Iikub3V0ZXJIZWlnaHQoKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gcGFyc2VJbnQoY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOmNvbnRhaW5lckhlaWdodH0sNDAwKTsNCiAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgIH0sIDQxMCk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgLy9jbGljayBvbiBoYW1idXJnZXINCiAgICAgICAgICAgICQoIi5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLm9uKCdjbGljaycsZnVuY3Rpb24oKXsNCiAgICAgICAgICAgICAgICB2YXIgY3VycmVudFZTY3JvbGxIQk1lbnUgPSB3aW5kb3cuc2Nyb2xsWTsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7DQogICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coY3VycmVudFZTY3JvbGxIQk1lbnUpOw0KICAgICAgICAgICAgICAgICAgICBpZigkKCcubGF5b3V0LWRyYXdlci1oYW1idXJnZXInKS5oYXNDbGFzcygnaGFtYnVyZ2VyT1BFTicpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZihjdXJyZW50VlNjcm9sbEhCTWVudSA8PSAxMDAgfHwgYWx3YXlzX2ZpeGVkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuY3NzKCdkaXNwbGF5JywnYmxvY2snKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSAkKGVsZW1lbnQpLmZpbmQoIi5vZmZlcnBvcHVwX2FkdmFuY2VkdmVyc2lvbl92NCIpLm91dGVySGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0ID0gcGFyc2VJbnQoY29udGFpbmVySGVpZ2h0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjc2l0ZV9jb250ZW50IikuYW5pbWF0ZSh7cGFkZGluZ1RvcDpjb250YWluZXJIZWlnaHR9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgiI2hhbWJ1cmdlci1oZWFkZXItY29udGFpbmVyLCAubGF5b3V0LWRyYXdlci1oYW1idXJnZXIiKS5jc3MoInRyYW5zZm9ybSIsIGB0cmFuc2xhdGVZKCR7Y29udGFpbmVySGVpZ2h0fXB4KWApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5hZGRDbGFzcygnU3BlY2lhbE9mZmVyUG9wdXBPcGVuX1QzJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAkKCcubGF5b3V0LWRyYXdlci1oYW1idXJnZXInKS5yZW1vdmVDbGFzcygnaGFtYnVyZ2VyT1BFTicpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgJCgnLmxheW91dC1kcmF3ZXItaGFtYnVyZ2VyJykuYWRkQ2xhc3MoJ2hhbWJ1cmdlck9QRU4nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikuaGlkZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgnYm9keScpLnJlbW92ZUNsYXNzKCdTcGVjaWFsT2ZmZXJQb3B1cE9wZW5fVDMnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICQoIiNzaXRlX2NvbnRlbnQiKS5hbmltYXRlKHtwYWRkaW5nVG9wOjB9LDUwMCk7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCIjaGFtYnVyZ2VyLWhlYWRlci1jb250YWluZXIsIC5sYXlvdXQtZHJhd2VyLWhhbWJ1cmdlciIpLmNzcygidHJhbnNmb3JtIiwgInRyYW5zbGF0ZVkoMHB4KSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAvL3RydW5vZmYgdGhlIGRlc2NyaXB0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICBpZihhbHdheXNfZml4ZWQpIHR1cm5PRkZkZXNjcmlwdGlvbigpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSwyMDApOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICB9DQogICAgDQogICAgZnVuY3Rpb24gcmVtb3ZlVGFncyhzdHIpIHsNCiAgICAgICAgaWYgKChzdHI9PT1udWxsKSB8fCAoc3RyPT09JycpKQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICBlbHNlDQogICAgICAgICAgICBzdHIgPSBzdHIudG9TdHJpbmcoKTsNCiAgICAgICAgICAgICAgDQogICAgICAgIC8vIFJlZ3VsYXIgZXhwcmVzc2lvbiB0byBpZGVudGlmeSBIVE1MIHRhZ3MgaW4gDQogICAgICAgIC8vIHRoZSBpbnB1dCBzdHJpbmcuIFJlcGxhY2luZyB0aGUgaWRlbnRpZmllZCANCiAgICAgICAgLy8gSFRNTCB0YWcgd2l0aCBhIG51bGwgc3RyaW5nLg0KICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UoIC8oPChbXj5dKyk+KS9pZywgJycpOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHR1cm5PRkZkZXNjcmlwdGlvbigpIHsNCiAgICAgICAgaWYoJChlbGVtZW50KS5maW5kKCIub2ZmZXJwb3B1cF9hZHZhbmNlZHZlcnNpb25fdjQiKS5oYXNDbGFzcygnRGVzY3JpcHRpb25PcGVuJykpIHsNCiAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0X2NvbnRhbnQiKS5zdG9wKCkuc2xpZGVUb2dnbGUoNDAwLCAic3dpbmciKTsNCiAgICAgICAgICAgICQoZWxlbWVudCkuZmluZCgiLm9mZmVycG9wdXBfYWR2YW5jZWR2ZXJzaW9uX3Y0IikudG9nZ2xlQ2xhc3MoIkRlc2NyaXB0aW9uT3BlbiIpOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZWxzZQ0Kew0KICAgICQoZWxlbWVudCkuZmluZCgnLndpZGdldC1iMWU2NjInKS5oaWRlKCk7DQogICAgJChlbGVtZW50KS5maW5kKCcud2lkZ2V0LWIxZTY2MicpLmh0bWwoJycpOw0KfQ0KDQpmdW5jdGlvbiByZW1vdmVFeHRyYShzdHIpew0KICAgIGxldCBmdWxsVGV4dCA9Jyc7DQogICAgaWYodHlwZW9mIHN0ciAhPT0gInVuZGVmaW5lZCIpew0KICAgICAgICBpZighc3RyLmluY2x1ZGVzKCI8L3A+Iikpew0KICAgICAgICAgICAgZnVsbFRleHQgPSBzdHI7DQogICAgICAgIH1lbHNlew0KICAgICAgICAgICAgZnVsbFRleHQgPSBzdHIuc3Vic3RyaW5nKHN0ci5pbmRleE9mKCI+IikrMSkucmVwbGFjZSgiPC9wPiIsJycpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBmdWxsVGV4dDsNCn0NCg0KLy9yZW1vdmUgZXh0cmEgPHAgY2xhc3M9InJ0ZUJsb2NrIj4gdGFnIGZyb20gc3RyaW5nDQpmdW5jdGlvbiByZW1vdmVFeHRyYVB0YWcoc3RyKSB7DQogICAgbGV0IGZ1bGxUZXh0ID0nJzsNCiAgICBpZih0eXBlb2Ygc3RyICE9PSAidW5kZWZpbmVkIiAmJiBzdHIgIT0gJycpew0KICAgICAgICBpZighc3RyLmluY2x1ZGVzKCI8L3A+IikpDQogICAgICAgICAgICBmdWxsVGV4dCA9IHN0cjsNCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBmdWxsVGV4dCA9IHN0ci5yZXBsYWNlKCc8cCBjbGFzcz0icnRlQmxvY2siPicsJycpOw0KICAgICAgICAgICAgZnVsbFRleHQgPSBmdWxsVGV4dC5yZXBsYWNlKCc8L3A+JywnJyk7DQogICAgICAgICAgICANCiAgICAgICAgICAgIGlmKGZ1bGxUZXh0LmluY2x1ZGVzKCI8L3A+IikpIGZ1bGxUZXh0ID0gcmVtb3ZlRXh0cmFQdGFnKGZ1bGxUZXh0KTsNCiAgICAgICAgICAgIGVsc2UgcmV0dXJuIGZ1bGxUZXh0Ow0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBmdWxsVGV4dDsNCn0=","css":"@charset \"UTF-8\";\n/*********** INFORMATION *****************************\n\n- document: SlideIt - CSS3 fixed sliding elements\n- element: Simple Footer - Half Width - Opened\n- author: Capelle @ Codecanyon\n- profile: http://codecanyon.net/user/Capelle\n\n*****************************************************/\n/* ==================\n 1. FONTS\n ================== */\n/* ==================\n 2. RESET\n ================== */\n/***** Item reset *****/\n#dm .dmBody .rrac_entrata_special_view .Entrata_POPUP_item .card_Heading, #dm .dmBody .rrac_entrata_special_view .Entrata_POPUP_item .card_DESC {\n color: rgb(0, 0, 0) !important;\n}\n\n.rrac_entrata_special_view .specialofferloaderdiv {\n width: 100%;\n margin: 0 auto !important;\n}\n\n.rrac_entrata_special_view .Entrata_POPUP_item {\n padding: 0 !important;\n}\n\n#slideit * {\n margin: 0;\n padding: 0;\n border: 0;\n outline: 0;\n font-weight: 300;\n font-style: normal;\n font-size: 100%;\n vertical-align: baseline;\n line-height: normal;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n#slideit a {\n text-decoration: none;\n}\n\n#slideit label {\n cursor: pointer;\n}\n\n#slideit input[type=radio] {\n display: none;\n}\n\n/* === Note === If you experience issues with reset above, please adjust the selectors and values according to your template/website.\nWhen adjusting the reset is adviced to check up the elements on your page, as they might distort. */\n/* ==================\n 3. MAIN STYLES\n ================== */\n#slideit {\n z-index: 9999; /* Keep the item above all other elements on the page */\n position: fixed;\n width: 50%; /* Width of the wrapper of the section. Adjust this value if you want wider footer */\n bottom: 0; /* Vertical position of the elements */\n left: 0;\n right: 0;\n margin: 0 auto;\n}\n\n/***** Form styles *****/\n#slideit section {\n overflow: hidden;\n width: 100%;\n max-width: 760px;\n height: auto;\n left: 0;\n right: 0;\n bottom: 0;\n position: fixed;\n z-index: 10;\n background: #fff;\n border-bottom: 5px solid #434343;\n -webkit-backface-visibility: hidden; /* Webkit transition hack */\n}\n\n#slideit section.left {\n margin-left: 0;\n margin-right: auto;\n}\n\n#slideit section.center {\n margin-left: auto;\n margin-right: auto;\n}\n\n#slideit section.right {\n margin-left: auto;\n margin-right: 0;\n}\n\n#slideit section, #slideit input#close-item:checked ~ section { /* Section position when closed */\n -webkit-transform: translateY(100%);\n -moz-transform: translateY(100%);\n -ms-transform: translateY(100%);\n -o-transform: translateY(100%);\n transform: translateY(100%);\n}\n\n#slideit input#open-item:checked ~ section { /* Section position when opened */\n -webkit-transform: translateY(0);\n -moz-transform: translateY(0);\n -ms-transform: translateY(0);\n -o-transform: translateY(0);\n transform: translateY(0);\n}\n\n#slideit section .wrap {\n padding: 30px;\n position: relative;\n float: left;\n text-align: center;\n width: 100%;\n}\n\n#slideit section .wrap .title {\n display: block;\n font-size: 30px;\n font-weight: 600;\n color: #222;\n width: 100%;\n}\n\n#slideit section .wrap .description {\n font-size: 18px;\n display: inline-block;\n padding-right: 4px;\n vertical-align: top;\n padding: 10px 10px 10px 10px;\n width: 100%;\n}\n\n#slideit section .wrap .description p.rteBlock {\n text-align: center;\n}\n\n#slideit .links a {\n color: #bbb;\n font-size: 12px;\n display: inline-block;\n margin: 16px 10px 10px 10px;\n}\n\n#slideit .links a:hover, #slideit .links a:focus {\n color: #222;\n}\n\n#slideit .links a:before {\n content: \"●\";\n padding-right: 4px;\n}\n\n#slideit p.copyright {\n font-size: 14px;\n color: #bbb;\n line-height: 14px;\n display: block;\n margin: 10px auto 0 auto;\n padding-top: 20px;\n width: 80%;\n}\n\n#slideit p.copyright span {\n font-size: 14px;\n display: inline-block;\n padding-right: 4px;\n vertical-align: top;\n margin-top: -1px;\n}\n\nsection.center .wrap {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\nsection.center .wrap .title {\n text-align: center !important;\n}\n\nsection.center .wrap .title p.rteBlock {\n text-align: center !important;\n}\n\n/***** Main labels *****/\n#slideit label.open, #slideit label.close {\n text-align: center;\n position: absolute;\n}\n\n#slideit label.open {\n position: fixed;\n font-size: 24px;\n font-weight: 600;\n color: #222;\n background: #fff;\n width: 285px;\n bottom: 0px;\n left: 0;\n right: 0;\n top: auto;\n padding: 10px 10px 10px;\n z-index: 1;\n}\n\n#slideit label.open.left {\n margin-left: 0;\n margin-right: auto;\n}\n\n#slideit label.open.center {\n margin-left: auto;\n margin-right: auto;\n}\n\n#slideit label.open.right {\n margin-left: auto;\n margin-right: 0;\n}\n\n#slideit input#close-item:checked ~ label.open {\n bottom: 0;\n}\n\n#slideit label.open:hover, #slideit label.open:focus {\n background: #f7f7f7;\n color: #000;\n}\n\n#slideit label.close {\n right: 30px;\n left: auto;\n top: 0;\n bottom: auto;\n font-size: 30px;\n background: #434343;\n color: #fff;\n width: 22px;\n z-index: 999;\n}\n\n#slideit label.close:hover, #slideit label.close:focus {\n background: #ff0404;\n}\n\n/***** Transitions *****/\n#slideit label, #slideit a {\n -webkit-transition: all 0.1s ease-in-out;\n -moz-transition: all 0.1s ease-in-out;\n -ms-transition: all 0.1s ease-in-out;\n -o-transition: all 0.1s ease-in-out;\n transition: all 0.1s ease-in-out;\n}\n\n#slideit section {\n -webkit-transition: all 0.4s cubic-bezier(0.2, 0.6, 0.3, 1);\n -moz-transition: all 0.4s cubic-bezier(0.2, 0.6, 0.3, 1);\n -ms-transition: all 0.4s cubic-bezier(0.2, 0.6, 0.3, 1);\n -o-transition: all 0.4s cubic-bezier(0.2, 0.6, 0.3, 1);\n transition: all 0.4s cubic-bezier(0.2, 0.6, 0.3, 1);\n}\n\n#slideit input#close-item:checked ~ label.open {\n -webkit-transition: bottom 0.3s ease 0.4s, background 0.1s ease, color 0.1s ease;\n -moz-transition: bottom 0.3s ease 0.4s, background 0.1s ease, color 0.1s ease;\n -ms-transition: bottom 0.3s ease 0.4s, background 0.1s ease, color 0.1s ease;\n -o-transition: bottom 0.3s ease 0.4s, background 0.1s ease, color 0.1s ease;\n transition: bottom 0.3s ease 0.4s, background 0.1s ease, color 0.1s ease;\n}\n\n.headerWrapper .SPECIAL-close-btn svg {\n width: 22px !important;\n fill: #fff;\n border: 1px solid #fff;\n height: 22px !important;\n padding: 3px;\n border-radius: 30px;\n}\n\n.headerWrapper .SPECIAL-close-btn {\n position: absolute;\n right: 20px;\n top: 10px;\n cursor: pointer;\n z-index: 9;\n}\n\n.headerWrapper .header-subtitle p {\n text-align: unset !important;\n}\n\n/* ==================\n 4. MEDIA QUERIES\n ================== */\n@media screen and (max-width: 959px) {\n .headerWrapper .SPECIAL-close-btn {\n right: 10px;\n }\n}\n/***** Max width 640px *****/\n@media screen and (max-width: 640px) {\n #slideit {\n width: 100%; /* <-- Setting the footer to 100% width so we can fit more elements horizontally */\n }\n #slideit p.copyright {\n width: 100%;\n }\n section.center .wrap .title p.rteBlock {\n font-size: 17px !important;\n }\n section.center .wrap .description {\n font-size: 15px !important;\n }\n}\n/***** Max width 480px *****/\n@media screen and (max-width: 480px) {\n #slideit section .wrap {\n text-align: left;\n }\n #slideit .links a {\n width: 100%;\n display: block;\n margin-left: 0;\n }\n #slideit p.copyright {\n float: left;\n margin: 10px 0 0 0;\n }\n section.center .wrap .title p.rteBlock {\n font-size: 17px !important;\n }\n section.center .wrap .description {\n font-size: 15px !important;\n }\n}\n/*THEME 2*/\n.headerWrapper {\n display: none;\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n padding: 10px 10px;\n background-color: #000;\n z-index: 5;\n overflow: hidden;\n}\n\n.headerWrapper .header-title {\n font-size: 24px;\n font-weight: 700;\n color: #fff;\n}\n\n.headerWrapper .header-subtitle {\n font-size: 18px;\n font-weight: 700;\n color: #fff;\n margin: 0px;\n text-align: center !important;\n}\n\n.headerWrapper a {\n font-size: 18px;\n font-weight: 400;\n color: #fff;\n text-decoration: none;\n float: none;\n display: block;\n text-align: center !important;\n}\n\n.headerWrapper .header-anchor {\n text-align: center !important;\n color: #fff !important;\n}\n\n.headerWrapper .Theme2_Disclaimer {\n font-size: 15px;\n font-weight: 500;\n color: #fff;\n margin: 0;\n}\n\n.hamburger-header-container-animate-top {\n transition: all 0.5s linear; /*transform:translateY(130px);*/\n}\n\n.hamburger-header-container-animate-zero {\n transition: all 0.5s;\n transform: translateY(0px);\n}\n\n.SPECIAL-open-btn {\n display: none;\n}\n\n#dm .dmBody .dmRespRow div.u_1170127670 .headerWrapper {\n height: auto !important;\n opacity: 0 !important;\n transition: all 0.5s linear;\n transform: translateY(0px);\n}\n\n.SpecialOfferTabOpen #dm .dmBody .dmRespRow div.u_1170127670 .headerWrapper {\n opacity: 1 !important;\n flex-wrap: wrap;\n align-items: center;\n}\n\n.SPECIAL-open-btn {\n position: fixed;\n z-index: 99;\n color: #fff;\n text-transform: uppercase;\n font-size: 12px;\n bottom: 0;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 190px;\n background: rgb(220, 55, 14);\n border-radius: 20px 20px 0 0;\n text-align: center;\n line-height: 14px;\n transition: all 0.2s linear;\n letter-spacing: 0.5px;\n padding: 5px 0 3px;\n cursor: pointer;\n}\n\n.SPECIAL-open-btn:hover {\n background: #234058;\n}\n\n.SpecialOfferTabOpen #dm .dmBody .dmRespRow div.u_1170127670 .headerWrapper.hideThisOffer {\n display: none;\n height: auto !important;\n padding: 0 !important;\n}\n\n.headerWrapper .header-title {\n width: 100%;\n margin-bottom: 0;\n text-align: center !important;\n}\n\n.headerWrapper .Theme2_Disclaimer {\n text-align: center;\n}\n\n#dm .dmBody .u_1170127670 .header-subtitle {\n width: 100%;\n margin: -7px 0 0;\n}\n\n#dm .dmBody div.u_1170127670 .headerWrapper .header-anchor {\n background: #fff;\n color: #000;\n max-width: 140px;\n margin: 0 auto;\n padding: 7px 0;\n text-align: center !important;\n width: 100% !important;\n}\n\n.SpecialOfferTabOpen.hideThisOfferPop .headerWrapper.hideThisOffer {\n display: none !important;\n height: auto !important;\n padding: 0 !important;\n}\n\n#slideit.OfferPopWithImageLayout2 section .wrap {\n width: 100% !important;\n}\n\n#slideit.OfferPopWithImageLayout2 section .wrap .bg-img {\n width: 100% !important;\n}\n\n#slideit.OfferPopWithImageLayout2 section .wrap .bg-img a {\n display: block !important;\n}\n\n#slideit.OfferPopWithImageLayout2 section .wrap .bg-img a .img-content {\n width: 100% !important;\n object-fit: contain !important;\n}\n\n.OfferPopWithImageLayout2 .offerpopup_layoutone_Btn {\n margin-top: 20px !important;\n padding: 13px 25px !important;\n}\n\n.OfferPopWithImageLayout2 .copyright {\n margin: 15px auto 0px !important;\n}\n\n/*DROPDOWN THEME*/\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant {\n padding-top: 0 !important;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_para p {\n text-align: center !important;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_Btn {\n width: 170px !important;\n text-align: center !important;\n text-decoration: none;\n display: block !important;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_description {\n margin: 0;\n}\n\n@media only screen and (min-width: 768px) and (max-width: 1200px) {\n .headerWrapper .header-title {\n font-size: 24px !important;\n }\n .headerWrapper .header-subtitle {\n font-size: 14px;\n font-weight: 600;\n line-height: 1.4;\n }\n .headerWrapper .header-anchor {\n font-size: 15px;\n }\n .headerWrapper .Theme2_Disclaimer p.rteBlock {\n font-size: 14px;\n font-weight: 500;\n line-height: 1.4;\n }\n}\n@media only screen and (max-width: 767px) {\n .SpecialOfferTabOpen #dm .dmBody .dmRespRow div.u_1170127670 .headerWrapper {\n padding: 10px 20px !important;\n }\n .headerWrapper .SPECIAL-close-btn {\n right: 6px !important;\n top: 5px !important;\n }\n #dm .dmBody .dmRespColsWrapper div.u_1170127670 .header-title {\n font-size: 13px !important;\n }\n .headerWrapper .header-subtitle {\n margin: 0px !important;\n }\n .headerWrapper .header-subtitle {\n font-size: 14px;\n font-weight: 600;\n line-height: 1.4;\n }\n .headerWrapper .header-anchor {\n font-size: 15px;\n }\n .headerWrapper .Theme2_Disclaimer p.rteBlock {\n font-size: 14px;\n font-weight: 500;\n line-height: 1.4;\n }\n .headerWrapper .header-title {\n line-height: 1.2;\n margin-bottom: 0;\n }\n .headerWrapper .Theme2_Disclaimer {\n margin: 0;\n }\n #slideit.OfferPopWithImageLayout2 section .wrap {\n padding: 15px;\n }\n #slideit.OfferPopWithImageLayout2 label.close {\n right: 15px;\n }\n}\n/* 04-01-2023 */\n/*.SpecialOfferPopupExist .runtime-module-container[dmtemplateid*=amburger] .dmLayoutWrapper .layout-drawer-hamburger.hamburger-on-header{margin-top:0!important;transition:all 0.5s linear!important;}*/\n/*.hideThisOfferPop .hamburger-header-container.hamburger-header-container-animate-top,.hideThisOfferPop .layout-drawer-hamburger.hamburger-header-container-animate-top,.hideThisOfferPop .hamburger-header-container.p_hfcontainer{transform:translateY(0px)!important;}*/\n/*.runtime-module-container .hamburger-header-container{transition:all 0.5s linear!important;}*/\n/*.hamburger-header-container{z-index:6!important;}*/\n/*@media only screen and (min-width:768px) and (max-width:1200px){*/\n/* .SpecialOfferPopupExist #dm .dmOuter .dmInner .dmLayoutWrapper .p_hfcontainer .dmRespColsWrapper .dmRespRow .dmRespColsWrapper .u_1838333705.dmRespCol .main-navigation .unifiednav__container .unifiednav__item-wrap .unifiednav__item{font-size:16px!important;}*/\n/*\t.SpecialOfferPopupExist *.responsiveTablet [dmtemplateid=\"Hamburger\"].runtime-module-container .layout-drawer-hamburger{top:23.26667022705078px!important;right:40px!important;}*/\n/*}*/\n/*@media (max-width:1199px){*/\n/* *#dm .SpecialOfferPopupExist .dmOuter .dmInner .dmLayoutWrapper.standard-var .layout-drawer-hamburger{top:20px!important;right:20px!important;margin-top:0!important;}*/\n/*}*/\n/*@media only screen and (max-width:767px){*/\n/*\t.runtime-module-container.layout-drawer_open.layout-drawer_push-content{transform:translate(100vw,0)!important;}*/\n/*\t.SpecialOfferPopupExist #dmRoot.dmMobileBody.dmLayoutBody .runtime-module-container .layout-drawer-hamburger{left:20px!important;position:fixed!important;}*/\n/*\t.SpecialOfferPopupExist #dmRoot.dmMobileBody.dmLayoutBody .runtime-module-container .layout-drawer-hamburger.hamburger-on-header{top:19px!important;}*/\n/*\t#dmRoot.dmMobileBody.dmLayoutBody #dm #site_content .p_hfcontainer #mobile-hamburger-drawer.layout-drawer:not([data-origin=\"top\"]){width:100%!important;left:0!important;}*/\n/*\t#dmRoot.dmMobileBody.dmLayoutBody.hideThisOfferPop #dm #site_content .p_hfcontainer #mobile-hamburger-drawer.layout-drawer:not([data-origin=\"top\"]){width:100%!important;left:0!important;right:0!important;transform:translate(-100vw,0)!important;}*/\n/*\t#dmRoot.dmMobileBody.dmLayoutBody #dm .runtime-module-container.layout-drawer_open.layout-drawer_push-content{transform:translate(100vw,0)!important;}*/\n/*\t.mobileHamburgerLayout .runtime-module-container .layout-drawer-hamburger { left: -70px !important;}*/\n/*\t.mobileHamburgerLayout .runtime-module-container .layout-drawer-hamburger.hamburger-on-header { left: 20px !important;}*/\n/*\t.SpecialOfferPopupExist .mobileHamburgerLayout .runtime-module-container .layout-drawer-hamburger { left: -70px !important;}*/\n/*\t.SpecialOfferPopupExist .mobileHamburgerLayout .runtime-module-container .layout-drawer-hamburger.hamburger-on-header { left: 20px !important;}*/\n/*\t.SpecialOfferPopupExist #dmRoot.dmMobileBody.dmLayoutBody.hideThisOfferPop .runtime-module-container .layout-drawer-hamburger{left:-50px!important;}*/\n/*}*/\n/*.SpecialOfferPopupExist .responsiveTablet [dmtemplateid=\"Hamburger\"].runtime-module-container .layout-drawer-hamburger.hamburger-on-header{top:21px!important;right:40px!important;}*/\n@media (min-width: 768px) {\n .headerWrapper.splitView .leftOfSplit {\n position: relative !important;\n float: left !important;\n width: 50% !important;\n margin: 0 !important;\n padding: 0 60px 0 60px !important;\n text-align: left !important;\n margin-bottom: 0 !important;\n line-height: 60px !important;\n }\n .headerWrapper.splitView .leftOfSplit::after {\n content: \"\";\n position: absolute;\n width: 2px;\n height: 59px;\n background-color: #a37c20 !important;\n right: 30px;\n top: 0;\n }\n .headerWrapper.splitView .rightOfSplit {\n float: right !important;\n width: 50% !important;\n margin: 0 !important;\n text-align: left !important;\n }\n .headerWrapper.splitView .rightOfSplit .header-title {\n margin-bottom: 0 !important;\n line-height: 30px !important;\n }\n}\n@media only screen and (min-width: 960px) and (max-width: 1200px) {\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .leftOfSplit::after {\n height: 60px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .header-title {\n font-size: 21px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .header-subtitle {\n margin: 0 !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .leftOfSplit {\n width: 40% !important;\n font-size: 30px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .rightOfSplit {\n width: 60% !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .rightOfSplit .header-subtitle {\n line-height: 1.1 !important;\n }\n}\n@media only screen and (min-width: 960px) and (max-width: 1024px) {\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .header-title {\n font-size: 20px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .leftOfSplit {\n font-size: 30px !important;\n }\n}\n@media only screen and (min-width: 768px) and (max-width: 959px) {\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .leftOfSplit::after {\n height: 64px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .header-title {\n font-size: 21px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .header-subtitle {\n margin: 0 !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .leftOfSplit {\n width: 40% !important;\n font-size: 21px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .rightOfSplit {\n width: 60% !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .rightOfSplit .header-subtitle {\n line-height: 1.1 !important;\n }\n}\n@media only screen and (max-width: 959px) {\n .widget-b1e662 {\n position: relative !important;\n z-index: 99 !important;\n }\n}\n@media (max-width: 767px) {\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView {\n padding: 20px 20px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .leftOfSplit {\n text-align: center !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .header-title {\n text-align: center !important;\n line-height: 1.1 !important;\n margin-top: 4px !important;\n }\n .dmRoot #dm .dmBody div.dmCustomWidget .headerWrapper.splitView .header-subtitle {\n text-align: center !important;\n line-height: 1.1 !important;\n }\n}\n/* new dropdown template */\n.offerpopup_advancedversion_v4 {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n z-index: 99;\n overflow: hidden;\n}\n\n.offerpopup_advancedversion_v4 .scheduletour_v3_top_header {\n background-color: #f95353;\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n cursor: pointer;\n}\n\n.offerpopup_advancedversion_v4 .scheduletour_v3_top_header .offerpopup_advancedversion_v4_main_heading {\n font-size: 15px;\n line-height: 24px;\n color: #fff;\n}\n\n.offerpopup_advancedversion_v4 .scheduletour_v3_top_header .offerpopup_advancedversion_v4_icon {\n display: flex;\n align-items: center;\n width: 15px;\n cursor: pointer;\n}\n\n.offerpopup_advancedversion_v4 .scheduletour_v3_top_header .offerpopup_advancedversion_v4_icon svg {\n width: 15px;\n height: 17px;\n fill: #fff;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant {\n display: none;\n background: #3d3d3d;\n padding: 20px 300px;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_para {\n font-size: 15px;\n line-height: 24px;\n color: #fff;\n text-align: center;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_Btn {\n display: inline-block;\n padding: 10px 20px;\n border: 1px solid #fff;\n font-size: 16px;\n line-height: 24px;\n background: transparent;\n color: #fff;\n margin: 15px auto 0 auto;\n transition: 0.2s ease-in-out;\n cursor: pointer;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_Btn:hover {\n background: #fff;\n border: 1px solid #fff;\n color: #3d3d3d;\n}\n\n.offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_description {\n margin: 15px 0 0 0;\n font-size: 15px;\n line-height: 24px;\n color: #fff;\n text-align: center;\n}\n\n.offerpopup_advancedversion_v4.DescriptionOpen .scheduletour_v3_top_header .offerpopup_advancedversion_v4_icon {\n transform: rotate(-180deg);\n}\n\n.headerWrapper.splitView {\n padding: 0;\n}\n\n.headerWrapper.splitView .leftOfSplit {\n width: 25% !important;\n padding: 0 10px 0 30px !important;\n}\n\n.headerWrapper.splitView .leftOfSplit .leftOfSplitImgsec {\n width: 200px;\n height: auto;\n margin-left: auto;\n padding-top: 20px;\n}\n\n.headerWrapper.splitView .leftOfSplit .leftOfSplitImgsec img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.headerWrapper.splitView .leftOfSplit::after {\n display: none;\n}\n\n.headerWrapper.splitView .rightOfSplit {\n width: 75% !important;\n padding-left: 0 !important;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding-right: 30px;\n}\n\n.headerWrapper.splitView .rightOfSplit .rightOfSplittxt {\n border-left: 1px solid #f6f6f6 !important;\n border-right: 1px solid #f6f6f6 !important;\n padding: 10px 30px;\n}\n\n.headerWrapper.splitView .rightOfSplit .rightOfSplitimg {\n width: 240px;\n height: fit-content;\n margin-left: 20px;\n}\n\n.headerWrapper.splitView .rightOfSplit .rightOfSplitimg img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n filter: brightness(0) invert(1);\n}\n\n.headerWrapper.splitView .rightOfSplit .header-subtitle {\n width: 100% !important;\n}\n\n.headerWrapper.splitView .Theme2_Disclaimer {\n width: 100%;\n}\n\n@media only screen and (min-width: 1201px) and (max-width: 1500px) {\n .headerWrapper.splitView .rightOfSplit .rightOfSplitimg {\n width: 240px;\n padding-left: 25px;\n }\n}\n@media only screen and (min-width: 960px) and (max-width: 1200px) {\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant {\n padding: 20px 50px;\n }\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_Btn {\n margin: 10px auto 0 auto;\n }\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant {\n padding: 20px 50px;\n }\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_Btn {\n margin: 10px auto 0 auto;\n }\n .headerWrapper.splitView .leftOfSplit {\n width: 20% !important;\n border-right: none !important;\n padding: 0 !important;\n }\n .headerWrapper.splitView .leftOfSplit .leftOfSplitImgsec {\n width: 360px !important;\n height: 130px !important;\n margin: 0 auto !important;\n }\n .headerWrapper.splitView .rightOfSplit {\n width: 80% !important;\n padding: 0 !important;\n justify-content: center;\n align-items: flex-start;\n }\n .headerWrapper.splitView .rightOfSplit .header-title {\n text-align: center !important;\n }\n .headerWrapper.splitView .rightOfSplit .header-subtitle {\n text-align: center !important;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplitimg {\n padding-left: 0;\n width: 200px;\n margin: 20px 0 0 0;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplittxt {\n padding: 10px !important;\n }\n}\n@media only screen and (min-width: 768px) and (max-width: 1200px) {\n .headerWrapper.splitView .rightOfSplit {\n flex-wrap: nowrap;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplitimg {\n padding-left: 20px;\n width: 160px;\n }\n}\n@media only screen and (min-width: 768px) and (max-width: 959px) {\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant {\n padding: 20px 50px;\n }\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_Btn {\n margin: 10px auto 0 auto;\n }\n .headerWrapper.splitView .leftOfSplit {\n width: 20% !important;\n border-right: none !important;\n padding: 0 !important;\n }\n .headerWrapper.splitView .leftOfSplit .leftOfSplitImgsec {\n height: 100px !important;\n margin: 0 auto !important;\n }\n .headerWrapper.splitView .rightOfSplit {\n width: 80% !important;\n padding: 0 !important;\n justify-content: center;\n align-items: flex-start;\n }\n .headerWrapper.splitView .rightOfSplit .header-title {\n text-align: center !important;\n }\n .headerWrapper.splitView .rightOfSplit .header-subtitle {\n text-align: center !important;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplitimg {\n padding-left: 10px;\n width: 170px;\n margin: 20px 0 0 0;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplittxt {\n padding: 0 10px !important;\n }\n .headerWrapper.splitView .leftOfSplit .leftOfSplitImgsec {\n padding-top: 10px;\n }\n .headerWrapper.splitView .leftOfSplit {\n width: 100% !important;\n }\n .headerWrapper.splitView .rightOfSplit {\n width: 100% !important;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplittxt {\n border-left: none !important;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplittxt br {\n display: none;\n }\n .headerWrapper.splitView .rightOfSplit {\n padding-bottom: 10px !important;\n }\n}\n@media only screen and (max-width: 767px) {\n .offerpopup_advancedversion_v4 .scheduletour_v3_top_header {\n align-items: flex-start;\n padding: 20px;\n }\n .offerpopup_advancedversion_v4 .scheduletour_v3_top_header .offerpopup_advancedversion_v4_main_heading {\n line-height: 1;\n }\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant {\n padding: 10px 15px;\n }\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_Btn {\n width: 150px !important;\n margin: 10px auto 0 auto;\n }\n .offerpopup_advancedversion_v4 .offerpopup_advancedversion_v4_contant .offerpopup_advancedversion_v4_description {\n margin: 10px 0 0 0;\n }\n .headerWrapper.splitView {\n padding: 10px 10px !important;\n }\n .headerWrapper.splitView .leftOfSplit {\n width: 100% !important;\n border-right: none !important;\n padding: 0 !important;\n }\n .headerWrapper.splitView .leftOfSplit .leftOfSplitImgsec {\n width: 100px !important;\n height: 100px !important;\n margin: 0 auto !important;\n }\n .headerWrapper.splitView .rightOfSplit {\n width: 100% !important;\n padding: 0 !important;\n justify-content: center;\n }\n .headerWrapper.splitView .rightOfSplit .header-title {\n text-align: center !important;\n }\n .headerWrapper.splitView .rightOfSplit .header-subtitle {\n text-align: center !important;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplitimg {\n padding-left: 0;\n width: 120px;\n margin: 10px 0 0 0;\n }\n .headerWrapper.splitView .rightOfSplit .rightOfSplittxt {\n border-left: none !important;\n border-right: none !important;\n padding: 0 !important;\n }\n .headerWrapper.splitView .leftOfSplit .leftOfSplitImgsec {\n padding-top: 0;\n }\n}\n.OfferPopWithImage {\n padding: 0;\n width: 100%;\n}\n\n.OfferPopWithImage .bg-img-wrapper .bg-img .header-anchor img {\n width: 100%;\n object-fit: cover;\n}\n","strings":{}}],"page_title":"Current Special","flexstyles":[],"popups":[],"title":null,"uuid":"17bf1623e9014ec5bb928e7e8eb55399","devicecss":"*#dm *.dmBody div.u_1582953132\n{\n\tbackground-attachment:fixed !important;\n\tposition:static !important;\n}\n*#dm *.dmBody a.u_1305029531\n{\n\tpadding-top:0px !important;\n\tpadding-left:0px !important;\n\tdisplay:block !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:auto !important;\n\tmax-width:100% !important;\n\tleft:0 !important;\n\twidth:280px !important;\n\tmargin-top:10px !important;\n\tposition:relative !important;\n\tmargin-bottom:10px !important;\n\tpadding-right:0px !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:41px !important;\n}\n*#dm *.dmBody div.u_1969874274\n{\n\tpadding-top:0px !important;\n\tpadding-left:0px !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:0px !important;\n\tmargin-left:0px !important;\n\ttop:auto !important;\n\tmax-width:calc(100% - 0px) !important;\n\tleft:0px !important;\n\twidth:754px !important;\n\tmargin-top:10px !important;\n\tposition:relative !important;\n\tmargin-bottom:10px !important;\n\tpadding-right:0px !important;\n\tmin-width:25px !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1961225355\n{\n\tpadding-top:0px !important;\n\tpadding-left:40px !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:auto !important;\n\tmax-width:none !important;\n\tleft:0 !important;\n\twidth:100% !important;\n\tmargin-top:0px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:40px !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1487980814\n{\n\tpadding-top:0px !important;\n\tpadding-bottom:0px !important;\n\tpadding-left:0px !important;\n\tpadding-right:0px !important;\n\tfloat:none !important;\n\tmargin-right:0px !important;\n\tmargin-left:0px !important;\n\ttop:auto !important;\n\tmax-width:none !important;\n\tleft:0 !important;\n\twidth:100% !important;\n\tmargin-top:0px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1272008522\n{\n\tpadding-top:0px !important;\n\tpadding-left:0px !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:0px !important;\n\tmargin-left:0px !important;\n\ttop:0px !important;\n\tmax-width:calc(100% - 0px) !important;\n\tleft:0px !important;\n\twidth:100% !important;\n\tmargin-top:0px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:0px !important;\n\tmin-width:25px !important;\n\ttext-align:center !important;\n\theight:372px !important;\n}\n*#dm *.dmBody div.u_1516620858\n{\n\tpadding-top:0px !important;\n\tpadding-left:0px !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:0px !important;\n\tmargin-left:156px !important;\n\ttop:auto !important;\n\tmax-width:calc(100% - 156px) !important;\n\tleft:0px !important;\n\twidth:604px !important;\n\tmargin-top:0px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:0px !important;\n\tmin-width:25px !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_dm_content\n{\n\tpadding-top:20px !important;\n\tpadding-bottom:20px !important;\n\tpadding-left:20px !important;\n\tpadding-right:20px !important;\n}\n*#dm *.dmBody div.u_1891614437\n{\n\tpadding-top:0px !important;\n\tpadding-left:40px !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:auto !important;\n\tmax-width:none !important;\n\tleft:0 !important;\n\twidth:100% !important;\n\tmargin-top:0px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:40px !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1111986376\n{\n\tpadding-top:38.5px !important;\n\tpadding-left:0 !important;\n\tpadding-bottom:38.5px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:auto !important;\n\tmax-width:none !important;\n\tleft:0 !important;\n\twidth:100% !important;\n\tmargin-top:0px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:0 !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1351773922\n{\n\tpadding-top:5px !important;\n\tpadding-left:0px !important;\n\tdisplay:block !important;\n\tpadding-bottom:5px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:0px !important;\n\tmax-width:100% !important;\n\tleft:0 !important;\n\twidth:488px !important;\n\tmargin-top:15px !important;\n\tposition:relative !important;\n\tmargin-bottom:8px !important;\n\tpadding-right:0px !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody a.u_1145340895 span.textonly\n{\n\tfont-size:18px !important;\n}\n*#dm *.dmBody a.u_1145340895\n{\n\tpadding-top:0px !important;\n\tpadding-left:0px !important;\n\tdisplay:block !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:0px !important;\n\tmax-width:100% !important;\n\tleft:0 !important;\n\twidth:250px !important;\n\tmargin-top:30px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:0px !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:46px !important;\n}\n*#dm *.dmBody h1.u_1132229325\n{\n\tpadding-top:2px !important;\n\tpadding-left:0px !important;\n\tdisplay:block !important;\n\tpadding-bottom:0px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:0px !important;\n\tmax-width:calc(100% - 0px) !important;\n\tleft:0 !important;\n\twidth:100% !important;\n\tmargin-top:38px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:0px !important;\n\tmin-width:25px !important;\n\ttext-align:center !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1248844576\n{\n\tpadding-top:2px !important;\n\tpadding-left:0px !important;\n\tpadding-bottom:2px !important;\n\tfloat:none !important;\n\tmargin-right:auto !important;\n\tmargin-left:auto !important;\n\ttop:0px !important;\n\tmax-width:calc(100% - 0px) !important;\n\tleft:0 !important;\n\twidth:100% !important;\n\tmargin-top:13px !important;\n\tposition:relative !important;\n\tmargin-bottom:8px !important;\n\tpadding-right:0px !important;\n\tmin-width:25px !important;\n\ttext-align:center !important;\n\theight:auto !important;\n\tdisplay:block !important;\n}\n*#dm *.dmBody div.u_1312640753\n{\n\tpadding-top:2px !important;\n\tpadding-left:0px !important;\n\tpadding-bottom:2px !important;\n\tfloat:none !important;\n\tmargin-right:0px !important;\n\tmargin-left:0px !important;\n\ttop:0px !important;\n\tmax-width:calc(100% - 0px) !important;\n\tleft:0px !important;\n\twidth:100% !important;\n\tmargin-top:36px !important;\n\tposition:relative !important;\n\tmargin-bottom:8px !important;\n\tpadding-right:0px !important;\n\tmin-width:25px !important;\n\theight:auto !important;\n}\n*#dm *.dmBody div.u_1694205906\n{\n\tpadding-top:28.5px !important;\n\tpadding-left:0px !important;\n\tpadding-bottom:28.5px !important;\n\tfloat:none !important;\n\tmargin-right:0px !important;\n\tmargin-left:0px !important;\n\ttop:0 !important;\n\tmax-width:100% !important;\n\tleft:0 !important;\n\twidth:auto !important;\n\tmargin-top:0px !important;\n\tposition:relative !important;\n\tmargin-bottom:0px !important;\n\tpadding-right:0px !important;\n\tmin-width:0 !important;\n\ttext-align:center !important;\n\theight:auto !important;\n\tmin-height:auto !important;\n}\n","seometatags":"","content":"
*Applies to Select Apartment Homes. Restrictions apply, contact the office for details.