@charset "UTF-8";
a { padding: 0; }

@media (max-width: 700px) { .johnny-utah { content: 'Whoa.'; } }

.clear-lg2 { clear: both; }

@media (max-width: 940px) { .clear-lg2 { clear: none; } }

@media (max-width: 1023px) { .clear-lg1 { clear: none; } }

@media (max-width: 940px) { .clear-lg1 { clear: both; } }

@media (max-width: 700px) { .clear-lg1 { clear: none; } }

.lg2 { display: block; }

@media (max-width: 940px) { .lg2 { display: none; } }

.lg1 { display: none; }

@media (max-width: 940px) { .lg1 { display: block; } }

h3 { font-weight: normal; }

.mobileMain { display: none; }

@media (max-width: 480px) { .mobileMain { display: block; } }

.pcwebMain { display: block; }

@media (max-width: 480px) { .pcwebMain { display: none; } }

#wrapper { background: none; }

#header { margin-bottom: 0; }

#container { height: auto; width: 100%; max-width: 100%; padding-top: 0; margin: 0 auto; position: relative; }

.main1 { width: 100%; max-width: 100%; margin-bottom: 40px; }

.main1 .mainArea { max-width: 1260px; margin: 0 auto; position: relative; }

@media (max-width: 1260px) { .main1 .mainArea { width: 98%; margin: 0 1%; } }

@media (max-width: 480px) { .main1 .mainArea { width: 96%; margin: 0 2%; } }

@media (max-width: 767px) { #header { height: 104px; } }

.mainV_wrap { margin: 0 1%; }

.main_top { width: 100%; height: 120px; display: block; position: relative; }

.main_top:before, .main_top:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }

@media (max-width: 767px) { .main_top { height: 70px; } }

.main_top .logo_election { padding: 2.5% 0; position: absolute; }

@media (max-width: 940px) { .main_top .logo_election { display: none; } }

.main_top .tit { text-align: center; padding: 1.5% 0; font-family: Helvetica,Arial,sans-serif; letter-spacing: -1px; }

@media (max-width: 940px) { .main_top .tit { text-align: left; } }

.main_top .tit .elDate { display: inline-block; color: #1a2851; line-height: 1.05; font-size: 1.5em; text-align: left; border-right: 1px solid #b5b5b5; padding-right: 15px; margin-right: 10px; }

.main_top .tit .elDate .dateDay { font-size: 1.5em; }

.main_top .tit .elDate2 { display: inline-block; color: #1a2851; font-size: 4em; font-weight: 100; }

.main_top .tit .elDate2 .fb { font-weight: 400; }

@media (max-width: 767px) { .main_top .tit { font-size: 0.8em; } }

.menuSlide { position: absolute; top: 35px; right: 0; width: 350px; font-family: "맑은고딕","malgun gothic","나눔고딕","Nanum Gothic","AppleGothic","돋움","dotum",Helvetica,Arial,sans-serif; }

@media (max-width: 767px) { .menuSlide { display: none; } }

.menuSlide ul li { float: left; margin: 0 1%; }

.menuSlide ul li a { display: block; background: #474a5b; padding: 0.4em 1.2em; border-radius: 20px; color: #fff; font-weight: bold; min-width: 75px; text-align: center; position: relative; }

.menuSlide ul li a.active { background: #f05291; }

.menuSlide ul li a.active:before { background: url(/static/images/global/main/bg_menuSlide.png) no-repeat bottom right; width: 10px; height: 6px; content: ""; display: block; position: absolute; bottom: -6px; right: 18px; }

.menuSlide ul li a span { display: block; }

.menuSlide_mobile { position: relative; z-index: 150; top: 0; display: none; clear: both; }

@media (max-width: 767px) { .menuSlide_mobile { display: block; } }

.menuSlide_mobile > ul { position: absolute; z-index: 100; width: 100%; top: -41px; }

.menuSlide_mobile > ul > li { float: left; position: relative; border-right: 1px solid #f586b2; width: 25%; }

.menuSlide_mobile > ul > li a { color: #fff; font-size: 15px; padding: 0.75em; font-weight: 600; display: block; white-space: nowrap; display: block; line-height: 1; text-align: center; letter-spacing: -1px; background: #474a5b; }

.menuSlide_mobile > ul > li a.active { background: #f05291; }

.menuSlide_mobile > ul > li a.active.nav01 span { background: #f05291 url(/static/images/global/main/ico_navSlide1.png) no-repeat left center; padding-left: 30px; }

.menuSlide_mobile > ul > li a.active.nav02 span { background: #f05291 url(/static/images/global/main/ico_navSlide2.png) no-repeat left center; padding-left: 30px; }

.menuSlide_mobile > ul > li a.active.nav03 span { background: #f05291 url(/static/images/global/main/ico_navSlide3.png) no-repeat left center; padding-left: 30px; }

.noticeBox { clear: both; float: left; background: #fff; padding: 17px 14px; width: 48.5%; border: 1px solid #e9e9e9; position: relative; margin-left: 1.5%; }

@media (max-width: 1023px) { .noticeBox { width: 64.5%; } }

@media (max-width: 767px) { .noticeBox { width: 98.5%; margin-top: 1.5%; } }

@media (max-width: 480px) { .noticeBox { width: 98.5%; } }

.noticeBox .box1 { width: 48%; float: left; margin: 0 1%; }

@media (max-width: 480px) { .noticeBox .box1 { width: 100%; float: none; margin-bottom: 10px; } }

.noticeBox .box1 .img { display: block; position: relative; }

.noticeBox .box1 .img img { height: 275px; width: 100%; }

.noticeBox .box1 .img .txt { position: absolute; bottom: 0; width: 100%; height: 80px; background-color: rgba(0, 0, 0, 0.7); color: #fff; padding: 15px; }

.noticeBox .box1 .img .txt .date { display: block; font-size: 0.9em; color: #c8c8c8; }

.noticeBox .box1 .img .txt .tit { color: #fff; font-weight: bold; line-height: 1.25; }

.noticeBox h3 { background: url(/static/images/global/main/bu1.gif) no-repeat left 2px; padding-left: 15px; font-size: 1.1em; margin-bottom: 12px; }

.movieBox { float: left; background: #fff; padding: 12px 14px 8px 15px; width: 23.5%; border: 1px solid #e9e9e9; margin-left: 1.5%; position: relative; }

@media (max-width: 1023px) { .movieBox { width: 31.8%; } }

@media (max-width: 767px) { .movieBox { clear: both; width: 48.5%; margin-top: 1.5%; } }

@media (max-width: 480px) { .movieBox { width: 98.5%; margin-top: 0; } }

.movieBox h3 { background: url(/static/images/global/main/bu1.gif) no-repeat left 2px; padding-left: 15px; font-size: 1.1em; margin-bottom: 12px; }

.movieBox .tit { clear: both; }

.movieBox .tit a { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: block; margin: 10px 0; padding-bottom: 10px; font-weight: bold; border-bottom: 1px solid #efefef; }

@media (max-width: 767px) { .movieBox .movieW { float: none; width: 100%; } }

.movieBox .movieW img { width: 100%; }

.movieBox .movieW .movieImg { width: 100%; position: relative; padding-bottom: 55.5% !important; padding-top: 0 !important; height: 0; }

.movieBox .movieW .movieImg iframe { width: 100%; height: 100%; border: 0; position: absolute; }

.movieBox .movieScroll { height: 88px; overflow: auto; font-size: 0.9em; letter-spacing: -1px; line-height: 1.4; margin-bottom: 8px; }

.infor { width: 23.5%; float: left; margin-left: 1.5%; }

@media (max-width: 1023px) { .infor { width: 32.5%; } }

@media (max-width: 767px) { .infor { width: 48.5%; margin: 10px 0 0 1.5%; } }

@media (max-width: 480px) { .infor { width: 98.5%; margin-left: 1.5%; } }

.infor li { border: 1px solid #e9e9e9; background: #fff; margin-top: 9px; position: relative; overflow: hidden; height: 117px; }

@media (max-width: 480px) { .infor li { height: auto; } }

.infor li:before { content: ""; display: inline-block; width: 17px; height: 17px; background: #fff url(/static/images/global/main/bu_infor.gif) no-repeat left top; position: absolute; right: 15px; top: 12px; }

.infor li:first-child { margin-top: 0; }

.infor li.infor1 a { background: #fff url(/static/images/global/main/img_info1.jpg) no-repeat left center; }

.infor li.infor2 a { background: #fff url(/static/images/global/main/img_info2.jpg) no-repeat left center; }

.infor li.infor3 a { background: #fff url(/static/images/global/main/img_info3.jpg) no-repeat left center; }

.infor li a { display: block; line-height: 1.2; padding-left: 44%; padding: 10% 0 10% 140px; height: 117px; }

.infor li a img { float: left; max-width: 130px; width: 44%; }

@media (max-width: 480px) { .infor li a img { width: 40%; height: auto; max-width: inherit; } }

.infor li a p { float: left; padding: 0 5%; overflow: hidden; width: 100%; height: 85px; }

@media (max-width: 480px) { .infor li a p { float: none; margin: 0; } }

.slick-dots li { position: relative; display: inline-block; margin: 0; padding: 0; cursor: pointer; text-align: center; float: none; }

.slick-dots li button { background: url(/static/images/portal/main/slidePaging_off.png) no-repeat left top; text-indent: -999em; margin: 0; display: inline-block; width: 14px; padding: 0; text-align: center; height: 10px; border: 0; padding: 1px; }

.slick-dots li.slick-active button, .slick-dots li.slick-active button:hover { background: url(/static/images/portal/main/slidePaging_on.png) no-repeat left top; width: 33px; }

.main1 .main1_con1 { display: block; margin-left: -1.5%; }

.main1 .main1_con1:before, .main1 .main1_con1:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }

.main1 .main1_con1 .storyL { float: left; position: relative; margin: 0 0 1.5% 1.5%; width: 48.5%; }

@media (max-width: 1023px) { .main1 .main1_con1 .storyL { max-width: 100%; width: 65%; } }

@media (max-width: 767px) { .main1 .main1_con1 .storyL { background: #fff; width: 98.5%; max-width: inherit; margin: 0 0 10px 1.5%; } }

.main1 .main1_con1 .storyL .story_img { float: left; width: 100%; position: relative; overflow: hidden; }

@media (max-width: 640px) { .main1 .main1_con1 .storyL .story_img { width: 100%; float: none; } }

.main1 .main1_con1 .storyL .story_img ul li { float: left; }

.main1 .main1_con1 .storyL .story_img img { width: 100%; }

.main1 .main1_con1 .storyL .story_img .slick-prev { position: absolute; left: 0; top: 40%; background: url(/static/images/portal/main/btn_story_prev.png) no-repeat left top; width: 40px; height: 40px; font-size: 0; text-indent: -999em; z-index: 1; }

@media (max-width: 640px) { .main1 .main1_con1 .storyL .story_img .slick-prev { left: 0; } }

.main1 .main1_con1 .storyL .story_img .slick-next { position: absolute; right: 0; top: 40%; background: url(/static/images/portal/main/btn_story_next.png) no-repeat left top; width: 40px; height: 40px; font-size: 0; text-indent: -999em; }

.main1 .main1_con1 .storyL .story_img .story_pagination { position: absolute; bottom: 0; right: 0; background-color: rgba(0, 0, 0, 0.9); padding: 0; color: #fff; font-size: 0.95em; }

@media (max-width: 640px) { .main1 .main1_con1 .storyL .story_img .story_pagination { top: 0; bottom: auto; } }

.main1 .main1_con1 .storyL .story_img .story_pagination .story_paging { float: left; padding: 4px 8px; }

.main1 .main1_con1 .storyL .story_img .story_pagination .story_paging > span { font-weight: bold; color: #f05291; }

.main1 .main1_con1 .storyL .story_img .story_pagination .story_btn { float: right; }

.main1 .main1_con1 .storyL .story_img .story_pagination .story_btn .btnStop { background: url(/static/images/portal/main/btn_story_stop.gif) no-repeat left top; width: 30px; height: 30px; z-index: 100; display: block; text-indent: -999em; }

.main1 .main1_con1 .storyL .story_img .story_pagination .story_btn .btnStop.paused { display: none; }

.main1 .main1_con1 .storyL .story_img .story_pagination .story_btn .btnPlay { display: none; background: url(/static/images/portal/main/btn_story_play.gif) no-repeat left top; width: 30px; height: 30px; z-index: 100; text-indent: -999em; }

.main1 .main1_con1 .storyL .story_img .story_pagination .story_btn .btnPlay.on { display: block; }

.main1 .main1_con1 .storyR { float: left; width: 23.5%; margin: 0 0 1% 1.5%; }

@media (max-width: 1023px) { .main1 .main1_con1 .storyR { width: 98.5%; margin-top: 1.5%; } }

@media (max-width: 767px) { .main1 .main1_con1 .storyR { width: 48.5%; margin-left: 1.5%; margin-top: 1.5%; } }

@media (max-width: 480px) { .main1 .main1_con1 .storyR { width: 98.5%; margin-top: 30px; } }

.main1 .main1_con1 .storyR .popup1List { position: relative; }

@media (max-width: 1023px) { .main1 .main1_con1 .storyR .popup1List { width: 32.3%; float: left; margin-top: 1.5%; } }

@media (max-width: 767px) { .main1 .main1_con1 .storyR .popup1List { width: 98.5%; float: none; margin-top: 0; } }

.main1 .main1_con1 .storyR .popup1List .popup1List_ctrl { position: absolute; top: -19px; right: 0; }

.main1 .main1_con1 .storyR .popup1List .popup1List_ctrl button { width: 15px; height: 15px; z-index: 100; display: block; text-indent: -999em; padding: 0; }

.main1 .main1_con1 .storyR .popup1List .popup1List_ctrl .btnStop_pop1 { background: url(/static/images/portal/main/pop_stopBtn.png) no-repeat left top; }

.main1 .main1_con1 .storyR .popup1List .popup1List_ctrl .btnStop_pop1.paused { display: none; }

.main1 .main1_con1 .storyR .popup1List .popup1List_ctrl .btnPlay_pop1 { display: none; background: url(/static/images/portal/main/pop_playBtn.png) no-repeat left top; }

.main1 .main1_con1 .storyR .popup1List .popup1List_ctrl .btnPlay_pop1.on { display: block; }

.main1 .main1_con1 .storyR .popup1List .slick-dots { position: absolute; top: -25px; right: 20px; }

.main1 .main1_con1 .storyR .popup1List ul { overflow: hidden; }

.main1 .main1_con1 .storyR .popup1List li { float: left; }

.main1 .main1_con1 .storyR .popup1List li img { width: 100%; height: 100%; }

.main1 .main1_con1 .storyR .popup1List li a { display: block; }

.main1 .main1_con1 .storyR .service { overflow: hidden; float: left; }

@media (max-width: 1023px) { .main1 .main1_con1 .storyR .service { width: 66.7%; float: right; margin: 1% 0 0 1%; } }

@media (max-width: 767px) { .main1 .main1_con1 .storyR .service { width: 100%; float: none; overflow: visible; margin-bottom: 1em; margin-left: 0; } }

.main1 .main1_con1 .storyR .service li { float: left; width: 48.5%; margin: 3% 3% 0 0; }

@media (max-width: 1023px) { .main1 .main1_con1 .storyR .service li { width: 24%; float: left; margin: 0.5% !important; } }

@media (max-width: 767px) { .main1 .main1_con1 .storyR .service li { float: left; width: 49%; padding: 0; margin: 2% 2% 0 0 !important; } }

.main1 .main1_con1 .storyR .service li.mr0 { margin-right: 0; }

@media (max-width: 1023px) { .main1 .main1_con1 .storyR .service li.mr0 { margin: 0.5% !important; } }

@media (max-width: 767px) { .main1 .main1_con1 .storyR .service li.mr0 { margin: 2% 0 0 0 !important; } }

.main1 .main1_con1 .storyR .service li:first-child { border-right: 1px solid #ddd; }

.main1 .main1_con1 .storyR .service li a { display: block; color: #fff; text-align: center; font-weight: bold; border: 3px solid #27385f; background: #27385f; font-size: 0.9em; font-weight: normal; padding: 2.5% 0; color: #cce2ea; }

@media (max-width: 1023px) { .main1 .main1_con1 .storyR .service li a { padding: 15% 0; } }

@media (max-width: 767px) { .main1 .main1_con1 .storyR .service li a { padding: 4.5% 0; } }

.main1 .main1_con1 .storyR .service li a:hover { border: 3px solid #f05291; color: #fff; font-weight: bold; }

.main1 .main1_con1 .storyR .service li a > span { display: block; padding-top: 5px; }

.main1 .main1_con1 .storyR .service li a > p { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: block; line-height: 1.1; margin-top: 3px; }

.main1 .main1_con1 .storyR .service li a > p > span { display: block; }

.main1 .main1_con1 .storyR .service li a img { width: 38%; }

@media (max-width: 1023px) { .main1 .main1_con1 .storyR .service li a img { width: inherit; } }

@media (max-width: 767px) { .main1 .main1_con1 .storyR .service li a img { width: 33%; } }

@media (max-width: 480px) { .main1 .main1_con1 .storyR .service li a img { width: inherit; } }

.main1 .main1_con1 .main1_con2R { float: left; width: 23.5%; margin-left: 1.5%; }

@media (max-width: 1023px) { .main1 .main1_con1 .main1_con2R { float: left; width: 100%; margin-top: 1.5%; margin-left: 0; } }

@media (max-width: 767px) { .main1 .main1_con1 .main1_con2R { width: 48.5%; margin-left: 1.5%; margin-top: 10px; } }

@media (max-width: 480px) { .main1 .main1_con1 .main1_con2R { width: 98.5%; } }

.main1 .main1_con1 .main1_con2R .tabInfo { background: #fff; height: 180px; border: 1px solid #e9e9e9; border-top: 0; margin-bottom: 10px; }

@media (max-width: 1023px) { .main1 .main1_con1 .main1_con2R .tabInfo { width: 48.5%; float: left; margin-left: 1.5%; margin-bottom: 0; } }

@media (max-width: 767px) { .main1 .main1_con1 .main1_con2R .tabInfo { width: 100%; float: none; margin-left: 0; } }

@media (max-width: 480px) { .main1 .main1_con1 .main1_con2R .tabInfo { margin-bottom: 10px; } }

@media (max-width: 767px) { .main1 .main1_con1 .main1_con2R .tabInfo.tabInfo1 { margin-bottom: 9px; } }

.main1 .main1_con1 .main1_con2R .tabInfo2 { margin-bottom: 0; }

.main1 .main1_con1 .main1_con2R .tabInfo > ul { position: relative; }

.main1 .main1_con1 .main1_con2R .tabInfo > ul > li { float: left; margin-left: 1px; margin: 0 0 1.5% 0; width: 50%; }

.main1 .main1_con1 .main1_con2R .tabInfo.tabInfo1 > ul > li { float: left; margin-left: 0; margin: 0 0 1.5% 0; width: 100%; }

.main1 .main1_con1 .main1_con2R .tabInfo > ul > li > a { display: block; text-align: center; color: #5c5c5c; padding: 11px 0; background: #d9dbde; border: 1px solid #e9e9e9; font-size: 1em; }

.main1 .main1_con1 .main1_con2R .tabInfo > ul > li > a.on { color: #333; border-bottom: 1px solid #fff; background: url(/static/images/global/common/bu_arr_down.png) no-repeat center bottom; padding: 7px 0 14px 0; margin-left: -1px; font-size: 1.1em; }

.main1 .main1_con1 .main1_con2R .tabInfo.tabInfo1 > ul > li > a { border: 0; border-top: 1px solid #e9e9e9; }

.main1 .main1_con1 .main1_con2R .tabInfo_area { position: absolute; top: 42px; left: 0; width: 100%; padding: 13px 13px 0 15px; display: none; }

.main1 .main1_con1 .main1_con2R .tabInfo_area > ul > li { margin: 0.5em 0; float: none; overflow: hidden; }

.main1 .main1_con1 .main1_con2R .tabInfo_area > ul > li > a { font-size: 0.95em; text-align: left; line-height: 129%; color: #333; background: none; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: block; background: url(/static/images/global/main/bu2.gif) no-repeat left 8px; padding: 1px 0 1px 10px; }

.main1 .main1_con1 .main1_con2R .tabInfo_area .tabmore { margin-top: 14px; }

.main1 .main1_con1 .main1_con2R .tabInfo_area .tabmore a { text-align: center; display: block; color: #969696; font-size: 0.95em; border-top: 1px solid #ddd; padding-top: 3px; }

.more { position: absolute; top: 0; right: 1.5%; }

.more a { display: block; padding: 10px; }

.aboutBox { float: left; background: #aecfe1; padding: 1% 2%; width: 48.5%; position: relative; margin: 1.5% 0 0 1.5%; }

@media (max-width: 767px) { .aboutBox { margin-top: 10px; } }

@media (max-width: 480px) { .aboutBox { width: 98.5%; margin: 0 0 0 1.5%; } }

.aboutBox.first { clear: both; background: #e3c4d5; }

@media (max-width: 480px) { .aboutBox.first { margin: 10px 0 10px 1.5%; } }

.aboutBox.first li { float: left; width: 20%; }

@media (max-width: 1023px) { .aboutBox.first li { width: 50%; }
  .aboutBox.first li.type { width: 33.3%; } }

.aboutBox.first li a { display: block; text-align: center; padding: 0.9em 0; background: #fff; font-size: 1.1em; color: #474a5b; letter-spacing: -1px; margin: 1px; }

.aboutBox.first li.pt a { padding-top: 25px; }

.aboutBox h3 { font-size: 1.8em; font-weight: 400; color: #474a5b; margin: 0.4em 0 0.8em 0; padding-right: 65px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: block; }

@media (max-width: 1023px) { .aboutBox h3 { font-size: 1.5em; } }

.aboutBox .more1 { background: url(/static/images/global/main/more1.png) no-repeat right center; padding-right: 17px; font-size: 0.9em; font-weight: 600; position: absolute; top: 15%; right: 25px; height: 21px; }

@media (max-width: 1023px) { .aboutBox .more1 { top: 20px; } }

.aboutBox .more1 a { color: #474a5b; }

.aboutBox table { width: 100%; border-spacing: 1px; border-collapse: separate; }

@media (max-width: 767px) { .aboutBox table { border-spacing: 0; } }

.aboutBox table td { background: #fff; padding: 0.5em; width: 50%; text-align: center; border-collapse: separate; vertical-align: middle; height: 60px; line-height: 1.2; font-size: 0.95em; }

@media (max-width: 767px) { .aboutBox table td { display: block; width: 100%; margin-bottom: 1px; border-spacing: 0; height: inherit; padding: 10px; } }

.goLink { clear: both; text-align: center; margin: 4% 0 5% 0; }

.goLink a { display: inline-block; margin: 0 0.7%; letter-spacing: -2px; }

@media (max-width: 767px) { .goLink a { width: 30%; } }

.goLink a img { max-width: 100%; }

.goLink a p { font-size: 1.9em; margin-top: 10px; }

@media (max-width: 767px) { .goLink a p { font-size: 1.5em; } }

@media (max-width: 480px) { .goLink a p { font-size: 1.1em; } }

.f_menu { margin-top: 0; }

.bannerZone { border-bottom: 1px solid #e5e5e5; padding: 11px 0; position: relative; overflow: hidden; }

.bannerZone .banner_ctl { float: left; width: 200px; padding: 10px 0 0  32px; }

@media (max-width: 767px) { .bannerZone .banner_ctl { display: none; } }

.bannerZone .banner_ctl h2 { font-size: 1.05em; margin-bottom: 8px; color: #fff; }

@media (max-width: 767px) { .bannerZone .banner_ctl h2 { display: none; } }

@media (max-width: 767px) { .bannerZone .banner_btn { display: none; } }

.bannerZone .banner_btn a, .bannerZone .banner_btn button { display: inline-block; }

.bannerZone .banner_btn .btnStop { background: url(/static/images/common/btn_banner_stop.gif) no-repeat left top; width: 20px; height: 20px; z-index: 100; text-indent: -999em; }

.bannerZone .banner_btn .btnStop.paused { display: none; }

.bannerZone .banner_btn .btnPlay { display: none; background: url(/static/images/common/btn_banner_play.gif) no-repeat left top; width: 20px; height: 20px; z-index: 100; text-indent: -999em; }

.bannerZone .banner_btn .btnPlay.on { display: inline-block; }

.bannerZone .banner { overflow: hidden; margin: 0 40px; }

.bannerZone .banner ul li { float: left; margin: 5px 0; text-align: center; }

.bannerZone .banner ul li img { max-width: 100%; }

.bannerZone .banner .slick-prev { background: url(/static/images/common/btn_banner_left.gif) no-repeat left top; width: 22px; height: 46px; position: absolute; top: 50%; margin-top: -23px; left: 170px; text-indent: -999em; }

@media (max-width: 767px) { .bannerZone .banner .slick-prev { left: 12px; } }

.bannerZone .banner .slick-next { background: url(/static/images/common/btn_banner_right.gif) no-repeat left top; width: 22px; height: 46px; position: absolute; top: 50%; margin-top: -23px; right: 0; text-indent: -999em; }

@media (max-width: 1260px) { .bannerZone .banner .slick-next { right: 12px; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsL21haW5fZ2xvYmFsLmNzcyIsInNvdXJjZXMiOlsiZ2xvYmFsL21haW5fZ2xvYmFsLnNjc3MiLCJfYnJlYWtwb2ludC5zY3NzIiwiYnJlYWtwb2ludC9fc2V0dGluZ3Muc2NzcyIsImJyZWFrcG9pbnQvX2NvbnRleHQuc2NzcyIsImJyZWFrcG9pbnQvX2hlbHBlcnMuc2NzcyIsImJyZWFrcG9pbnQvX3BhcnNlcnMuc2NzcyIsImJyZWFrcG9pbnQvcGFyc2Vycy9fcXVlcnkuc2NzcyIsImJyZWFrcG9pbnQvcGFyc2Vycy9fc2luZ2xlLnNjc3MiLCJicmVha3BvaW50L3BhcnNlcnMvc2luZ2xlL19kZWZhdWx0LnNjc3MiLCJicmVha3BvaW50L3BhcnNlcnMvX2RvdWJsZS5zY3NzIiwiYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZGVmYXVsdC1wYWlyLnNjc3MiLCJicmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kb3VibGUtc3RyaW5nLnNjc3MiLCJicmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kZWZhdWx0LnNjc3MiLCJicmVha3BvaW50L3BhcnNlcnMvX3RyaXBsZS5zY3NzIiwiYnJlYWtwb2ludC9wYXJzZXJzL3RyaXBsZS9fZGVmYXVsdC5zY3NzIiwiYnJlYWtwb2ludC9wYXJzZXJzL19yZXNvbHV0aW9uLnNjc3MiLCJicmVha3BvaW50L3BhcnNlcnMvcmVzb2x1dGlvbi9fcmVzb2x1dGlvbi5zY3NzIiwiYnJlYWtwb2ludC9fbm8tcXVlcnkuc2NzcyIsImJyZWFrcG9pbnQvX3Jlc3BvbmQtdG8uc2NzcyIsImJyZWFrcG9pbnQvX2xlZ2FjeS1zZXR0aW5ncy5zY3NzIiwiZ2xvYmFsL2Jhc2Uuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcInV0Zi04XCI7XHJcbkBpbXBvcnQgJy4uL2JyZWFrcG9pbnQnO1xyXG5AaW1wb3J0ICdiYXNlLnNjc3MnO1xyXG5cclxuLy8gI2NvbnRhaW5lcntoZWlnaHQ6YXV0bzt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlfVxyXG4vLyAubWFpblZ7bWF4LXdpZHRoOjEyNjBweDttYXJnaW46MCBhdXRvbH1cclxuaDN7Zm9udC13ZWlnaHQ6bm9ybWFsfVxyXG4ubW9iaWxlTWFpbntkaXNwbGF5Om5vbmU7XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpe2Rpc3BsYXk6YmxvY2s7fVxyXG59XHJcbi5wY3dlYk1haW57ZGlzcGxheTpibG9jaztcclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRtZCl7ZGlzcGxheTpub25lO31cclxufVxyXG4jd3JhcHBlcntiYWNrZ3JvdW5kOm5vbmV9XHJcbiNoZWFkZXJ7bWFyZ2luLWJvdHRvbTowO31cclxuI2NvbnRhaW5lcntoZWlnaHQ6YXV0bzt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO3BhZGRpbmctdG9wOjA7bWFyZ2luOjAgYXV0bztwb3NpdGlvbjpyZWxhdGl2ZX1cclxuXHJcblx0Lm1haW4xe3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7bWFyZ2luLWJvdHRvbTo0MHB4O1xyXG5cdFx0Lm1haW5BcmVhe21heC13aWR0aDoxMjYwcHg7bWFyZ2luOjAgYXV0bztwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGc0KXtcclxuXHRcdFx0XHR3aWR0aDo5OCU7bWFyZ2luOjAgMSU7XHJcblx0XHRcdH1cclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpe1xyXG5cdFx0XHRcdHdpZHRoOjk2JTttYXJnaW46MCAyJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcbiNoZWFkZXJ7XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcclxuXHRcdGhlaWdodDoxMDRweDtcclxuXHR9XHJcbn1cclxuXHJcbi5tYWluVl93cmFwe21hcmdpbjowIDElO31cclxuLm1haW5fdG9we3dpZHRoOjEwMCU7aGVpZ2h0OjEyMHB4O0BpbmNsdWRlIGNsZWFyZml4O3Bvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpe1xyXG5cdFx0XHRcdGhlaWdodDo3MHB4O1xyXG5cdFx0XHR9XHJcblx0XHQubG9nb19lbGVjdGlvbntwYWRkaW5nOjIuNSUgMDtwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcxKXtcclxuXHRcdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdC50aXR7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoxLjUlIDA7Zm9udC1mYW1pbHk6SGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LTFweDtcclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcxKXtcclxuXHRcdFx0XHR0ZXh0LWFsaWduOmxlZnQ7XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpe1xyXG5cdFx0XHQvLyBcdGRpc3BsYXk6bm9uZTtcclxuXHRcdFx0Ly8gfVxyXG5cdFx0XHQuZWxEYXRle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbG9yOiMxYTI4NTE7bGluZS1oZWlnaHQ6MS4wNTtmb250LXNpemU6MS41ZW07dGV4dC1hbGlnbjpsZWZ0OyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNiNWI1YjU7cGFkZGluZy1yaWdodDoxNXB4O21hcmdpbi1yaWdodDoxMHB4O1xyXG5cdFx0XHRcdC5kYXRlRGF5e2ZvbnQtc2l6ZToxLjVlbX1cclxuXHRcdFx0fVxyXG5cdFx0XHQuZWxEYXRlMntkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjojMWEyODUxO2ZvbnQtc2l6ZTo0ZW07Zm9udC13ZWlnaHQ6MTAwO1xyXG5cdFx0XHRcdC5mYntmb250LXdlaWdodDo0MDB9XHJcblx0XHRcdH1cclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpe1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTowLjhlbTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuLm1lbnVTbGlkZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MzVweDtyaWdodDowO3dpZHRoOjM1MHB4O2ZvbnQtZmFtaWx5OiBcIuunkeydgOqzoOuUlVwiLFwibWFsZ3VuIGdvdGhpY1wiLFwi64KY64iU6rOg65SVXCIsXCJOYW51bSBHb3RoaWNcIixcIkFwcGxlR290aGljXCIsXCLrj4vsm4BcIixcImRvdHVtXCIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpe1xyXG5cdFx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdFx0fVxyXG5cdHVse1xyXG5cdFx0bGl7ZmxvYXQ6bGVmdDttYXJnaW46MCAxJTtcclxuXHRcdFx0YXtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQ6IzQ3NGE1YjtwYWRkaW5nOjAuNGVtIDEuMmVtO2JvcmRlci1yYWRpdXM6IDIwcHg7Y29sb3I6I2ZmZjtmb250LXdlaWdodDpib2xkO21pbi13aWR0aDo3NXB4O3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdCYuYWN0aXZle2JhY2tncm91bmQ6I2YwNTI5MTtcclxuXHRcdFx0XHRcdCY6YmVmb3Jle2JhY2tncm91bmQ6dXJsKC9zdGF0aWMvaW1hZ2VzL2dsb2JhbC9tYWluL2JnX21lbnVTbGlkZS5wbmcpIG5vLXJlcGVhdCBib3R0b20gcmlnaHQ7d2lkdGg6MTBweDtoZWlnaHQ6NnB4O2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotNnB4O3JpZ2h0OjE4cHg7fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRzcGFue2Rpc3BsYXk6YmxvY2s7fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4ubWVudVNsaWRlX21vYmlsZXtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE1MDt0b3A6MDtkaXNwbGF5Om5vbmU7Y2xlYXI6Ym90aDtcclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRsZyl7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0fVxyXG5cdD51bHtwb3NpdGlvbjogYWJzb2x1dGU7ei1pbmRleDogMTAwO3dpZHRoOjEwMCU7dG9wOi00MXB4O1xyXG5cdFx0Pmxpe2Zsb2F0OiBsZWZ0O3Bvc2l0aW9uOiByZWxhdGl2ZTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNmNTg2YjI7d2lkdGg6MjUlO1xyXG5cdFx0XHRhe2NvbG9yOiAjZmZmO2ZvbnQtc2l6ZTogMTVweDtwYWRkaW5nOjAuNzVlbTtmb250LXdlaWdodDo2MDA7ZGlzcGxheTogYmxvY2s7d2hpdGUtc3BhY2U6IG5vd3JhcDtkaXNwbGF5OiBibG9jaztsaW5lLWhlaWdodDogMTt0ZXh0LWFsaWduOiBjZW50ZXI7bGV0dGVyLXNwYWNpbmc6IC0xcHg7YmFja2dyb3VuZDojNDc0YTViO1xyXG5cdFx0XHRcdCYuYWN0aXZle2JhY2tncm91bmQ6I2YwNTI5MTt9XHJcblx0XHRcdFx0Ji5hY3RpdmUubmF2MDEgc3BhbntiYWNrZ3JvdW5kOiNmMDUyOTEgdXJsKC9zdGF0aWMvaW1hZ2VzL2dsb2JhbC9tYWluL2ljb19uYXZTbGlkZTEucG5nKSBuby1yZXBlYXQgbGVmdCBjZW50ZXI7cGFkZGluZy1sZWZ0OjMwcHg7fVxyXG5cdFx0XHRcdCYuYWN0aXZlLm5hdjAyIHNwYW57YmFja2dyb3VuZDojZjA1MjkxIHVybCgvc3RhdGljL2ltYWdlcy9nbG9iYWwvbWFpbi9pY29fbmF2U2xpZGUyLnBuZykgbm8tcmVwZWF0IGxlZnQgY2VudGVyO3BhZGRpbmctbGVmdDozMHB4O31cclxuXHRcdFx0XHQmLmFjdGl2ZS5uYXYwMyBzcGFue2JhY2tncm91bmQ6I2YwNTI5MSB1cmwoL3N0YXRpYy9pbWFnZXMvZ2xvYmFsL21haW4vaWNvX25hdlNsaWRlMy5wbmcpIG5vLXJlcGVhdCBsZWZ0IGNlbnRlcjtwYWRkaW5nLWxlZnQ6MzBweDt9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5ub3RpY2VCb3h7Y2xlYXI6Ym90aDtmbG9hdDpsZWZ0O2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjE3cHggMTRweCA7d2lkdGg6NDguNSU7Ym9yZGVyOjFweCBzb2xpZCAjZTllOWU5O3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1sZWZ0OjEuNSU7XHJcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMil7XHJcblx0XHRcdFx0d2lkdGg6NjQuNSU7XHJcblx0XHRcdH1cclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpe1xyXG5cdFx0XHRcdHdpZHRoOjk4LjUlO21hcmdpbi10b3A6MS41JTtcclxuXHRcdFx0fVxyXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRtZCl7XHJcblx0XHRcdFx0d2lkdGg6OTguNSU7XHJcblx0XHRcdH1cclxuXHRcdFxyXG5cdFx0XHRcdFxyXG5cdFx0XHQuYm94MXt3aWR0aDo0OCU7ZmxvYXQ6bGVmdDttYXJnaW46MCAxJTtcclxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRtZCl7XHJcblx0XHRcdFx0XHR3aWR0aDoxMDAlO2Zsb2F0Om5vbmU7XHJcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOjEwcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC5pbWd7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHRcdGltZ3toZWlnaHQ6Mjc1cHg7d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdFx0Ly8gQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpe1xyXG5cdFx0XHRcdFx0XHQvLyBcdG1heC1oZWlnaHQ6bm9uZTtcclxuXHRcdFx0XHRcdFx0Ly8gXHRtYXgtd2lkdGg6bm9uZTtcclxuXHRcdFx0XHRcdFx0Ly8gXHR3aWR0aDoxMDAlO2hlaWdodDoxMDAlO1xyXG5cdFx0XHRcdFx0XHQvLyB9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQudHh0e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3dpZHRoOjEwMCU7aGVpZ2h0OjgwcHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyk7Y29sb3I6I2ZmZjtwYWRkaW5nOjE1cHg7XHJcblx0XHRcdFx0XHRcdC5kYXRle2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjAuOWVtO2NvbG9yOiNjOGM4Yzh9XHJcblx0XHRcdFx0XHRcdC50aXQge2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6Ym9sZDtsaW5lLWhlaWdodDoxLjI1fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFxyXG5cdFx0aDN7YmFja2dyb3VuZDp1cmwoL3N0YXRpYy9pbWFnZXMvZ2xvYmFsL21haW4vYnUxLmdpZikgbm8tcmVwZWF0IGxlZnQgMnB4O3BhZGRpbmctbGVmdDoxNXB4O2ZvbnQtc2l6ZToxLjFlbTttYXJnaW4tYm90dG9tOjEycHh9XHJcblx0XHRcclxuXHR9XHJcblxyXG4ubW92aWVCb3h7ZmxvYXQ6bGVmdDtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzoxMnB4IDE0cHggOHB4IDE1cHg7d2lkdGg6MjMuNSU7Ym9yZGVyOjFweCBzb2xpZCAjZTllOWU5O21hcmdpbi1sZWZ0OjEuNSU7cG9zaXRpb246cmVsYXRpdmU7XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcyKXtcclxuXHRcdFx0d2lkdGg6MzEuOCU7XHJcblx0XHR9XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpe1xyXG5cdFx0Y2xlYXI6Ym90aDt3aWR0aDo0OC41JTttYXJnaW4tdG9wOjEuNSU7XHJcblx0fVxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKXtcclxuXHRcdHdpZHRoOjk4LjUlO21hcmdpbi10b3A6MDtcclxuXHR9XHJcblx0aDN7YmFja2dyb3VuZDp1cmwoL3N0YXRpYy9pbWFnZXMvZ2xvYmFsL21haW4vYnUxLmdpZikgbm8tcmVwZWF0IGxlZnQgMnB4O3BhZGRpbmctbGVmdDoxNXB4O2ZvbnQtc2l6ZToxLjFlbTttYXJnaW4tYm90dG9tOjEycHh9XHJcblx0Ly8gLm1vdmllV3tcclxuXHQvLyBcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpe1xyXG5cdC8vIFx0XHRcdGZsb2F0Om5vbmU7d2lkdGg6MTAwJTtcclxuXHQvLyBcdFx0fVxyXG5cdC8vIFx0XHQudGl0e2NsZWFyOmJvdGg7fVxyXG5cdC8vIFx0XHQudGl0IGF7XHJcblx0Ly8gXHRcdFx0QGluY2x1ZGUgZWxsO21hcmdpbjoxMHB4IDA7cGFkZGluZy1ib3R0b206MTBweDtmb250LXdlaWdodDpib2xkO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlZmVmZWY7Zm9udC1zaXplOjAuOTVlbTtcclxuXHJcblx0Ly8gXHRcdH1cclxuXHQvLyBcdFx0aW1ne3dpZHRoOjEwMCU7fVxyXG5cdC8vIFx0fVxyXG5cdC8vIFx0Lm1vdmllU2Nyb2xse2hlaWdodDo2OHB4O292ZXJmbG93OmF1dG87Zm9udC1zaXplOjAuOWVtO2xldHRlci1zcGFjaW5nOi0xcHg7bGluZS1oZWlnaHQ6MS4zNTttYXJnaW4tYm90dG9tOjhweDtcclxuXHQvLyBcdH1cclxuXHQudGl0e2NsZWFyOmJvdGg7fVxyXG5cdC50aXQgYXtcclxuXHRcdEBpbmNsdWRlIGVsbDttYXJnaW46MTBweCAwO3BhZGRpbmctYm90dG9tOjEwcHg7Zm9udC13ZWlnaHQ6Ym9sZDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWZlZmVmO1xyXG5cdH1cclxuXHQubW92aWVXe1xyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpe1xyXG5cdFx0XHRmbG9hdDpub25lO3dpZHRoOjEwMCU7XHJcblx0XHR9XHJcblx0XHRpbWd7d2lkdGg6MTAwJTt9XHJcblx0XHQubW92aWVJbWd7d2lkdGg6IDEwMCU7cG9zaXRpb246IHJlbGF0aXZlO3BhZGRpbmctYm90dG9tOiA1NS41JSAhaW1wb3J0YW50O3BhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7aGVpZ2h0OiAwO1xyXG5cdFx0XHRpZnJhbWV7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXI6MDtwb3NpdGlvbjphYnNvbHV0ZTt9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5tb3ZpZVNjcm9sbHtoZWlnaHQ6ODhweDtvdmVyZmxvdzphdXRvO2ZvbnQtc2l6ZTowLjllbTtsZXR0ZXItc3BhY2luZzotMXB4O2xpbmUtaGVpZ2h0OjEuNDttYXJnaW4tYm90dG9tOjhweDtcclxuXHRcdH1cdFxyXG59XHJcblxyXG4uaW5mb3J7d2lkdGg6MjMuNSU7ZmxvYXQ6bGVmdDttYXJnaW4tbGVmdDoxLjUlO1xyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMil7XHJcblx0XHRcdFx0d2lkdGg6MzIuNSU7XHJcblx0XHRcdH1cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRsZyl7XHJcblx0XHRcdHdpZHRoOjQ4LjUlO21hcmdpbjoxMHB4IDAgMCAxLjUlO1xyXG5cdFx0fVxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKXtcclxuXHRcdFx0d2lkdGg6OTguNSU7bWFyZ2luLWxlZnQ6MS41JTtcclxuXHRcdH1cclxuXHRsaXtib3JkZXI6MXB4IHNvbGlkICNlOWU5ZTk7YmFja2dyb3VuZDojZmZmO21hcmdpbi10b3A6OXB4O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6MTE3cHg7XHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRtZCl7XHJcblx0XHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdH1cclxuXHRcdCY6YmVmb3Jle2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxN3B4O2hlaWdodDoxN3B4O2JhY2tncm91bmQ6I2ZmZiB1cmwoL3N0YXRpYy9pbWFnZXMvZ2xvYmFsL21haW4vYnVfaW5mb3IuZ2lmKSBuby1yZXBlYXQgbGVmdCB0b3A7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTVweDt0b3A6MTJweDt9XHJcblx0XHQmOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MDt9XHJcblx0XHQmLmluZm9yMSBhe2JhY2tncm91bmQ6I2ZmZiB1cmwoL3N0YXRpYy9pbWFnZXMvZ2xvYmFsL21haW4vaW1nX2luZm8xLmpwZykgbm8tcmVwZWF0IGxlZnQgY2VudGVyO31cclxuXHRcdCYuaW5mb3IyIGF7YmFja2dyb3VuZDojZmZmIHVybCgvc3RhdGljL2ltYWdlcy9nbG9iYWwvbWFpbi9pbWdfaW5mbzIuanBnKSBuby1yZXBlYXQgbGVmdCBjZW50ZXI7fVxyXG5cdFx0Ji5pbmZvcjMgYXtiYWNrZ3JvdW5kOiNmZmYgdXJsKC9zdGF0aWMvaW1hZ2VzL2dsb2JhbC9tYWluL2ltZ19pbmZvMy5qcGcpIG5vLXJlcGVhdCBsZWZ0IGNlbnRlcjt9XHJcblx0XHRhe2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MS4yO3BhZGRpbmctbGVmdDo0NCU7cGFkZGluZzoxMCUgMCAxMCUgMTQwcHg7aGVpZ2h0OjExN3B4O1xyXG5cclxuXHRcdFx0aW1ne2Zsb2F0OmxlZnQ7bWF4LXdpZHRoOjEzMHB4O3dpZHRoOjQ0JTtcclxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRtZCl7XHJcblx0XHRcdFx0XHR3aWR0aDo0MCU7aGVpZ2h0OmF1dG87bWF4LXdpZHRoOmluaGVyaXQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdHB7ZmxvYXQ6bGVmdDtwYWRkaW5nOjAgNSU7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCU7aGVpZ2h0Ojg1cHg7XHJcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpe1xyXG5cdFx0XHRcdFx0ZmxvYXQ6bm9uZTttYXJnaW46MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuLnNsaWNrLWRvdHMgbGl7cG9zaXRpb246IHJlbGF0aXZlO2Rpc3BsYXk6IGlubGluZS1ibG9jazttYXJnaW46IDA7cGFkZGluZzogMDtjdXJzb3I6IHBvaW50ZXI7dGV4dC1hbGlnbjpjZW50ZXI7ZmxvYXQ6bm9uZTtcclxufVxyXG4uc2xpY2stZG90cyBsaSBidXR0b257YmFja2dyb3VuZDogdXJsKC9zdGF0aWMvaW1hZ2VzL3BvcnRhbC9tYWluL3NsaWRlUGFnaW5nX29mZi5wbmcpIG5vLXJlcGVhdCBsZWZ0IHRvcDt0ZXh0LWluZGVudDotOTk5ZW07bWFyZ2luOjA7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTRweDtwYWRkaW5nOjA7dGV4dC1hbGlnbjpjZW50ZXI7aGVpZ2h0OjEwcHg7Ym9yZGVyOjA7cGFkZGluZzoxcHg7XHJcbn1cclxuLnNsaWNrLWRvdHMgbGkuc2xpY2stYWN0aXZlIGJ1dHRvbiwgLnNsaWNrLWRvdHMgbGkuc2xpY2stYWN0aXZlIGJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kOiB1cmwoL3N0YXRpYy9pbWFnZXMvcG9ydGFsL21haW4vc2xpZGVQYWdpbmdfb24ucG5nKSBuby1yZXBlYXQgbGVmdCB0b3A7d2lkdGg6MzNweDt9XHJcblxyXG4ubWFpbjF7XHJcblx0XHJcblx0Lm1haW4xX2NvbjF7QGluY2x1ZGUgY2xlYXJmaXg7bWFyZ2luLWxlZnQ6LTEuNSU7XHJcblx0XHQuc3RvcnlMe2Zsb2F0OmxlZnQ7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOjAgMCAxLjUlIDEuNSU7d2lkdGg6NDguNSU7XHJcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcyKXtcclxuXHRcdFx0XHRcdG1heC13aWR0aDoxMDAlO3dpZHRoOjY1JTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpe1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZDojZmZmO3dpZHRoOjk4LjUlO21heC13aWR0aDppbmhlcml0O21hcmdpbjowIDAgMTBweCAxLjUlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0LnN0b3J5X2ltZ3tmbG9hdDpsZWZ0O3dpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1nKXtcclxuXHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtmbG9hdDpub25lO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdCB1bCBsaXtmbG9hdDpsZWZ0O31cclxuXHRcdFx0XHQgaW1ne3dpZHRoOjEwMCU7fVxyXG5cdFx0XHRcdCAuc2xpY2stcHJldntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjQwJTtiYWNrZ3JvdW5kOnVybCgvc3RhdGljL2ltYWdlcy9wb3J0YWwvbWFpbi9idG5fc3RvcnlfcHJldi5wbmcpIG5vLXJlcGVhdCBsZWZ0IHRvcDt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2ZvbnQtc2l6ZTowO3RleHQtaW5kZW50Oi05OTllbTt6LWluZGV4OjE7XHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1nKXtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQuc2xpY2stbmV4dHtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDo0MCU7YmFja2dyb3VuZDp1cmwoL3N0YXRpYy9pbWFnZXMvcG9ydGFsL21haW4vYnRuX3N0b3J5X25leHQucG5nKSBuby1yZXBlYXQgbGVmdCB0b3A7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtmb250LXNpemU6MDt0ZXh0LWluZGVudDotOTk5ZW19XHJcblx0XHRcdFx0LnN0b3J5X3BhZ2luYXRpb257cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7cmlnaHQ6MDtiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAgLDAgLDAgLDAuOSk7cGFkZGluZzowO2NvbG9yOiNmZmY7Zm9udC1zaXplOjAuOTVlbTtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1nKXtcclxuXHRcdFx0XHRcdFx0dG9wOjA7Ym90dG9tOmF1dG87XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQuc3RvcnlfcGFnaW5ne2Zsb2F0OmxlZnQ7cGFkZGluZzo0cHggOHB4O1xyXG5cdFx0XHRcdFx0XHQ+c3Bhbntmb250LXdlaWdodDpib2xkO2NvbG9yOiRjb3JfcGlua31cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC5zdG9yeV9idG57ZmxvYXQ6cmlnaHQ7XHJcblx0XHRcdFx0XHRcdC5idG5TdG9we2JhY2tncm91bmQ6dXJsKC9zdGF0aWMvaW1hZ2VzL3BvcnRhbC9tYWluL2J0bl9zdG9yeV9zdG9wLmdpZikgbm8tcmVwZWF0IGxlZnQgdG9wO3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7ei1pbmRleDoxMDA7ZGlzcGxheTpibG9jazt0ZXh0LWluZGVudDotOTk5ZW07XHJcblx0XHRcdFx0XHRcdFx0Ji5wYXVzZWR7ZGlzcGxheTpub25lO31cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQuYnRuUGxheXtkaXNwbGF5Om5vbmU7YmFja2dyb3VuZDp1cmwoL3N0YXRpYy9pbWFnZXMvcG9ydGFsL21haW4vYnRuX3N0b3J5X3BsYXkuZ2lmKSBuby1yZXBlYXQgbGVmdCB0b3A7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDt6LWluZGV4OjEwMDt0ZXh0LWluZGVudDotOTk5ZW07XHJcblx0XHRcdFx0XHRcdFx0Ji5vbntkaXNwbGF5OmJsb2NrfVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0LnN0b3J5UntmbG9hdDpsZWZ0O3dpZHRoOjIzLjUlO21hcmdpbjowIDAgMSUgMS41JTtcclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMil7XHJcblx0XHRcdHdpZHRoOjk4LjUlO21hcmdpbi10b3A6MS41JTtcclxuXHRcdH1cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKXtcclxuXHRcdFx0d2lkdGg6NDguNSU7bWFyZ2luLWxlZnQ6MS41JTttYXJnaW4tdG9wOjEuNSU7XHJcblx0XHR9XHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRtZCl7XHJcblx0XHRcdHdpZHRoOjk4LjUlO21hcmdpbi10b3A6MzBweDtcclxuXHRcdH1cclxuXHRcdC5wb3B1cDFMaXN0e3Bvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcyKXtcclxuXHRcdFx0XHR3aWR0aDozMi4zJTtmbG9hdDpsZWZ0O21hcmdpbi10b3A6MS41JTtcclxuXHRcdFx0fVxyXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRsZyl7XHJcblx0XHRcdFx0d2lkdGg6OTguNSU7ZmxvYXQ6bm9uZTttYXJnaW4tdG9wOjA7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5wb3B1cDFMaXN0X2N0cmx7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0xOXB4O3JpZ2h0OjA7XHJcblx0XHRcdFx0YnV0dG9ue3dpZHRoOjE1cHg7aGVpZ2h0OjE1cHg7ei1pbmRleDoxMDA7ZGlzcGxheTpibG9jazt0ZXh0LWluZGVudDotOTk5ZW07cGFkZGluZzowO31cclxuXHRcdFx0XHQuYnRuU3RvcF9wb3Axe2JhY2tncm91bmQ6dXJsKC9zdGF0aWMvaW1hZ2VzL3BvcnRhbC9tYWluL3BvcF9zdG9wQnRuLnBuZykgbm8tcmVwZWF0IGxlZnQgdG9wO1xyXG5cdFx0XHRcdFx0Ji5wYXVzZWR7ZGlzcGxheTpub25lO31cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0LmJ0blBsYXlfcG9wMXtkaXNwbGF5Om5vbmU7YmFja2dyb3VuZDp1cmwoL3N0YXRpYy9pbWFnZXMvcG9ydGFsL21haW4vcG9wX3BsYXlCdG4ucG5nKSBuby1yZXBlYXQgbGVmdCB0b3A7XHJcblx0XHRcdFx0XHQmLm9ue2Rpc3BsYXk6YmxvY2t9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdC5zbGljay1kb3Rze3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMjVweDtyaWdodDoyMHB4O31cclxuXHRcdFx0XHJcblx0XHR9XHJcblx0XHQucG9wdXAxTGlzdCB1bHtvdmVyZmxvdzpoaWRkZW47fVxyXG5cdFx0LnBvcHVwMUxpc3QgbGl7ZmxvYXQ6bGVmdDt9XHJcblx0XHQucG9wdXAxTGlzdCBsaSBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt9XHJcblx0XHQucG9wdXAxTGlzdCBsaSBhe2Rpc3BsYXk6YmxvY2s7fVxyXG5cdFx0XHJcblxyXG5cdFx0LnNlcnZpY2V7b3ZlcmZsb3c6aGlkZGVuO2Zsb2F0OmxlZnQ7XHJcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcyKXtcclxuXHRcdFx0XHRcdHdpZHRoOjY2LjclO2Zsb2F0OnJpZ2h0O21hcmdpbjoxJSAwIDAgMSU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKXtcclxuXHRcdFx0XHRcdHdpZHRoOjEwMCU7ZmxvYXQ6bm9uZTtvdmVyZmxvdzp2aXNpYmxlO21hcmdpbi1ib3R0b206MWVtO21hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGxpe2Zsb2F0OmxlZnQ7d2lkdGg6NDguNSU7bWFyZ2luOjMlIDMlIDAgMDtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMil7XHJcblx0XHRcdFx0XHRcdHdpZHRoOjI0JTtmbG9hdDpsZWZ0O21hcmdpbjowLjUlICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRsZyl7XHJcblx0XHRcdFx0XHRcdGZsb2F0OmxlZnQ7d2lkdGg6NDklO3BhZGRpbmc6MDttYXJnaW46MiUgMiUgMCAwICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQmLm1yMHttYXJnaW4tcmlnaHQ6MDtcclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcyKXtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW46MC41JSAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKXtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW46MiUgMCAwIDAgIWltcG9ydGFudDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0JjpmaXJzdC1jaGlsZHtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNkZGQ7fVxyXG5cdFx0XHRcdFx0YXtkaXNwbGF5OmJsb2NrO2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC13ZWlnaHQ6Ym9sZDtib3JkZXI6M3B4IHNvbGlkICMyNzM4NWY7YmFja2dyb3VuZDojMjczODVmO2ZvbnQtc2l6ZTowLjllbTtmb250LXdlaWdodDpub3JtYWw7cGFkZGluZzoyLjUlIDA7Y29sb3I6I2NjZTJlYTtcclxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcyKXtcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOjE1JSAwO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKXtcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOjQuNSUgMDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQmOmhvdmVye2JvcmRlcjozcHggc29saWQgI2YwNTI5MTtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OmJvbGQ7fVxyXG5cdFx0XHRcdFx0XHQ+c3BhbntkaXNwbGF5OmJsb2NrO3BhZGRpbmctdG9wOjVweH1cclxuXHRcdFx0XHRcdFx0PnB7QGluY2x1ZGUgZWxsO2xpbmUtaGVpZ2h0OjEuMTttYXJnaW4tdG9wOjNweDtcclxuXHRcdFx0XHRcdFx0XHQ+c3BhbntkaXNwbGF5OmJsb2NrO31cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRpbWd7d2lkdGg6MzglO1xyXG5cdFx0XHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMil7XHJcblx0XHRcdFx0XHRcdFx0XHR3aWR0aDppbmhlcml0O1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRsZyl7XHJcblx0XHRcdFx0XHRcdFx0XHR3aWR0aDozMyU7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKXtcclxuXHRcdFx0XHRcdFx0XHRcdHdpZHRoOmluaGVyaXQ7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Lm1haW4xX2NvbjJSe2Zsb2F0OmxlZnQ7d2lkdGg6MjMuNSU7bWFyZ2luLWxlZnQ6MS41JTtcclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcyKXtcclxuXHRcdFx0XHRmbG9hdDpsZWZ0O3dpZHRoOjEwMCU7bWFyZ2luLXRvcDoxLjUlO21hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdH1cclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpe1xyXG5cdFx0XHRcdFx0XHR3aWR0aDo0OC41JTttYXJnaW4tbGVmdDoxLjUlO21hcmdpbi10b3A6MTBweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpe1xyXG5cdFx0XHRcdFx0d2lkdGg6OTguNSU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQudGFiSW5mb3tiYWNrZ3JvdW5kOiNmZmY7aGVpZ2h0OjE4MHB4O2JvcmRlcjoxcHggc29saWQgI2U5ZTllOTtib3JkZXItdG9wOjA7bWFyZ2luLWJvdHRvbToxMHB4O1xyXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMil7XHJcblx0XHRcdFx0XHR3aWR0aDo0OC41JTtmbG9hdDpsZWZ0O21hcmdpbi1sZWZ0OjEuNSU7bWFyZ2luLWJvdHRvbTowO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRsZyl7XHJcblx0XHRcdFx0XHR3aWR0aDoxMDAlO2Zsb2F0Om5vbmU7bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpe1xyXG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbToxMHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQmLnRhYkluZm8xe1xyXG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpe1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOjlweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0LnRhYkluZm8ye21hcmdpbi1ib3R0b206MDt9XHJcblx0XHRcdC50YWJJbmZvPnVse3Bvc2l0aW9uOnJlbGF0aXZlO31cclxuXHRcdFx0LnRhYkluZm8+dWwgPiBsaXtmbG9hdDpsZWZ0O21hcmdpbi1sZWZ0OjFweDttYXJnaW46MCAwIDEuNSUgMDt3aWR0aDo1MCU7fVxyXG5cdFx0XHQudGFiSW5mby50YWJJbmZvMT51bCA+IGxpe2Zsb2F0OmxlZnQ7bWFyZ2luLWxlZnQ6MDttYXJnaW46MCAwIDEuNSUgMDt3aWR0aDoxMDAlO31cclxuXHRcdFx0LnRhYkluZm8+dWwgPiBsaSA+IGF7ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojNWM1YzVjO3BhZGRpbmc6MTFweCAwO2JhY2tncm91bmQ6I2Q5ZGJkZTtib3JkZXI6MXB4IHNvbGlkICNlOWU5ZTk7Zm9udC1zaXplOjFlbTt9XHJcblx0XHRcdC50YWJJbmZvPiB1bCA+IGxpID4gYS5vbntjb2xvcjojMzMzO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNmZmY7YmFja2dyb3VuZDp1cmwoL3N0YXRpYy9pbWFnZXMvZ2xvYmFsL2NvbW1vbi9idV9hcnJfZG93bi5wbmcpIG5vLXJlcGVhdCBjZW50ZXIgYm90dG9tO3BhZGRpbmc6N3B4IDAgMTRweCAwO21hcmdpbi1sZWZ0Oi0xcHg7Zm9udC1zaXplOjEuMWVtO31cclxuXHRcdFx0LnRhYkluZm8udGFiSW5mbzE+IHVsID4gbGkgPiBhe2JvcmRlcjowO2JvcmRlci10b3A6MXB4IHNvbGlkICNlOWU5ZTk7fVxyXG5cdFx0XHQudGFiSW5mb19hcmVhe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0MnB4O2xlZnQ6MDt3aWR0aDoxMDAlO3BhZGRpbmc6MTNweCAxM3B4IDAgMTVweDtkaXNwbGF5Om5vbmU7fVxyXG5cdFx0XHQudGFiSW5mb19hcmVhPnVsPmxpe21hcmdpbjowLjVlbSAwO2Zsb2F0Om5vbmU7b3ZlcmZsb3c6aGlkZGVuO31cclxuXHRcdFx0LnRhYkluZm9fYXJlYT51bD5saT5he2ZvbnQtc2l6ZTowLjk1ZW07dGV4dC1hbGlnbjpsZWZ0O2xpbmUtaGVpZ2h0OjEyOSU7Y29sb3I6IzMzMztiYWNrZ3JvdW5kOm5vbmU7IEBpbmNsdWRlIGVsbDtiYWNrZ3JvdW5kOnVybCgvc3RhdGljL2ltYWdlcy9nbG9iYWwvbWFpbi9idTIuZ2lmKSBuby1yZXBlYXQgbGVmdCA4cHg7cGFkZGluZzoxcHggMCAxcHggMTBweDt9XHJcblx0XHRcdC50YWJJbmZvX2FyZWEgLnRhYm1vcmV7bWFyZ2luLXRvcDoxNHB4O1xyXG5cdFx0XHRcdC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnNCl7XHJcblx0XHRcdFx0Ly8gXHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdFx0Ly8gfVxyXG5cdFx0XHRcdC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMil7XHJcblx0XHRcdFx0Ly8gXHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdC8vIH1cclxuXHRcdFx0XHQvLyBAaW5jbHVkZSBicmVha3BvaW50KCRtZyl7XHJcblx0XHRcdFx0Ly8gXHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdFx0Ly8gfVxyXG5cdFx0XHRcdC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKXtcclxuXHRcdFx0XHQvLyBcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0Ly8gfVxyXG5cdFx0XHR9XHJcblx0XHRcdC50YWJJbmZvX2FyZWEgLnRhYm1vcmUgYXt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmJsb2NrO2NvbG9yOiM5Njk2OTY7Zm9udC1zaXplOjAuOTVlbTtib3JkZXItdG9wOjFweCBzb2xpZCAjZGRkO3BhZGRpbmctdG9wOjNweDt9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLm1vcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MS41JTtcclxuXHRhe2Rpc3BsYXk6YmxvY2s7cGFkZGluZzoxMHB4O31cclxufVxyXG4uYWJvdXRCb3h7ZmxvYXQ6bGVmdDtiYWNrZ3JvdW5kOiNhZWNmZTE7cGFkZGluZzoxJSAyJTt3aWR0aDo0OC41JTtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MS41JSAwIDAgMS41JTtcclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKXtcclxuXHRcdFx0XHRtYXJnaW4tdG9wOjEwcHg7XHJcblx0XHRcdH1cclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKXtcclxuXHRcdFx0d2lkdGg6OTguNSU7bWFyZ2luOjAgMCAwIDEuNSU7XHJcblx0XHR9XHRcclxuXHRcdCYuZmlyc3R7Y2xlYXI6Ym90aDtiYWNrZ3JvdW5kOiNlM2M0ZDU7XHJcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKXtcclxuXHRcdFx0XHRtYXJnaW46MTBweCAwIDEwcHggMS41JTtcclxuXHRcdFx0fVx0XHJcblx0XHRcdGxpe2Zsb2F0OmxlZnQ7d2lkdGg6MjAlO1xyXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMil7XHJcblx0XHRcdFx0XHQmLnR5cGV7d2lkdGg6MzMuMyU7fVxyXG5cdFx0XHRcdFx0XHR3aWR0aDo1MCU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0YXtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MC45ZW0gMDtiYWNrZ3JvdW5kOiNmZmY7Zm9udC1zaXplOjEuMWVtO2NvbG9yOiM0NzRhNWI7bGV0dGVyLXNwYWNpbmc6LTFweDttYXJnaW46MXB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQmLnB0e1xyXG5cdFx0XHRcdFx0YXtwYWRkaW5nLXRvcDoyNXB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRoM3tmb250LXNpemU6MS44ZW07Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiM0NzRhNWI7bWFyZ2luOjAuNGVtIDAgMC44ZW0gMDtwYWRkaW5nLXJpZ2h0OjY1cHg7IEBpbmNsdWRlIGVsbDtcclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcyKXtcclxuXHRcdFx0XHRmb250LXNpemU6MS41ZW07XHJcblx0XHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0Lm1vcmUxe2JhY2tncm91bmQ6dXJsKC9zdGF0aWMvaW1hZ2VzL2dsb2JhbC9tYWluL21vcmUxLnBuZykgbm8tcmVwZWF0IHJpZ2h0IGNlbnRlcjtwYWRkaW5nLXJpZ2h0OjE3cHg7Zm9udC1zaXplOjAuOWVtO2ZvbnQtd2VpZ2h0OjYwMDtwb3NpdGlvbjogYWJzb2x1dGU7dG9wOjE1JTtyaWdodDoyNXB4O2hlaWdodDoyMXB4O1xyXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRsZzIpe1xyXG5cdFx0XHRcdHRvcDoyMHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0YXtjb2xvcjojNDc0YTVifVxyXG5cdFx0fVxyXG5cdFx0dGFibGV7d2lkdGg6MTAwJTtib3JkZXItc3BhY2luZzoxcHg7Ym9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpe1xyXG5cdFx0XHRcdFx0Ym9yZGVyLXNwYWNpbmc6MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdHRke2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjAuNWVtO3dpZHRoOjUwJTt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtoZWlnaHQ6NjBweDtsaW5lLWhlaWdodDoxLjI7Zm9udC1zaXplOjAuOTVlbTtcclxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRsZyl7XHJcblx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7bWFyZ2luLWJvdHRvbToxcHg7Ym9yZGVyLXNwYWNpbmc6MDtoZWlnaHQ6aW5oZXJpdDtwYWRkaW5nOjEwcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuLmdvTGlua3tjbGVhcjpib3RoO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjo0JSAwIDUlIDA7XHJcblx0YXtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MCAwLjclO2xldHRlci1zcGFjaW5nOi0ycHg7XHJcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRsZyl7XHJcblx0XHRcdFx0d2lkdGg6MzAlO1xyXG5cdFx0XHRcdH1cclxuXHRcdGltZ3tcclxuXHRcdFx0bWF4LXdpZHRoOjEwMCU7XHJcblx0XHR9XHJcblx0XHRwe2ZvbnQtc2l6ZToxLjllbTttYXJnaW4tdG9wOjEwcHg7XHJcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKXtcclxuXHRcdFx0XHRmb250LXNpemU6MS41ZW07XHJcblx0XHRcdH1cclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpe1xyXG5cdFx0XHRcdGZvbnQtc2l6ZToxLjFlbTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmZfbWVudXttYXJnaW4tdG9wOjB9XHJcbi5iYW5uZXJab25le2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7cGFkZGluZzoxMXB4IDA7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHQuYmFubmVyX2N0bHtmbG9hdDogbGVmdDsgd2lkdGg6IDIwMHB4OyBwYWRkaW5nOjEwcHggMCAwICAzMnB4O1xyXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcclxuXHRcdCBcdGRpc3BsYXk6bm9uZTtcclxuXHRcdCB9XHJcblx0XHRoMntmb250LXNpemU6MS4wNWVtO21hcmdpbi1ib3R0b206OHB4O2NvbG9yOiNmZmY7XHJcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHRcdCBcdGRpc3BsYXk6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHQuYmFubmVyX2J0bntcclxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XHJcblx0XHQgXHRkaXNwbGF5Om5vbmU7XHJcblx0XHR9XHJcblx0XHRhLCBidXR0b257ZGlzcGxheTogaW5saW5lLWJsb2NrfVxyXG5cdFx0LmJ0blN0b3B7YmFja2dyb3VuZDp1cmwoL3N0YXRpYy9pbWFnZXMvY29tbW9uL2J0bl9iYW5uZXJfc3RvcC5naWYpIG5vLXJlcGVhdCBsZWZ0IHRvcDt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O3otaW5kZXg6MTAwO3RleHQtaW5kZW50Oi05OTllbTtcclxuXHRcdCYucGF1c2Vke2Rpc3BsYXk6bm9uZTt9XHJcblx0XHR9XHJcblx0XHQuYnRuUGxheXtkaXNwbGF5Om5vbmU7YmFja2dyb3VuZDp1cmwoL3N0YXRpYy9pbWFnZXMvY29tbW9uL2J0bl9iYW5uZXJfcGxheS5naWYpIG5vLXJlcGVhdCBsZWZ0IHRvcDt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O3otaW5kZXg6MTAwO3RleHQtaW5kZW50Oi05OTllbTtcclxuXHRcdFx0Ji5vbntkaXNwbGF5OmlubGluZS1ibG9ja31cclxuXHRcdH1cclxuXHR9XHJcblx0LmJhbm5lciB7b3ZlcmZsb3c6IGhpZGRlbjttYXJnaW46MCA0MHB4O1xyXG5cdFx0dWx7XHJcblx0XHRcdGxpeyBmbG9hdDpsZWZ0O21hcmdpbjo1cHggMDt0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdFx0aW1ne21heC13aWR0aDoxMDAlO31cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0LnNsaWNrLXByZXZ7YmFja2dyb3VuZDp1cmwoL3N0YXRpYy9pbWFnZXMvY29tbW9uL2J0bl9iYW5uZXJfbGVmdC5naWYpIG5vLXJlcGVhdCBsZWZ0IHRvcDt3aWR0aDoyMnB4O2hlaWdodDo0NnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bWFyZ2luLXRvcDotMjNweDtsZWZ0OjE3MHB4O3RleHQtaW5kZW50Oi05OTllbTtcclxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcclxuXHRcdFx0IFx0bGVmdDoxMnB4O1xyXG5cdFx0XHQgfVxyXG5cdFx0fVxyXG5cdFx0LnNsaWNrLW5leHR7YmFja2dyb3VuZDp1cmwoL3N0YXRpYy9pbWFnZXMvY29tbW9uL2J0bl9iYW5uZXJfcmlnaHQuZ2lmKSBuby1yZXBlYXQgbGVmdCB0b3A7d2lkdGg6MjJweDtoZWlnaHQ6NDZweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO21hcmdpbi10b3A6LTIzcHg7cmlnaHQ6MDsgdGV4dC1pbmRlbnQ6LTk5OWVtO1xyXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KCRsZzQpIHtcclxuXHRcdFx0IFx0cmlnaHQ6MTJweDtcclxuXHRcdFx0IH1cclxuXHRcdH1cclxuXHR9XHJcbn1cdCIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCBWYXJpYWJsZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJEJyZWFrcG9pbnQtU2V0dGluZ3M6IChcbiAgJ2RlZmF1bHQgbWVkaWEnOiBhbGwsXG4gICdkZWZhdWx0IGZlYXR1cmUnOiBtaW4td2lkdGgsXG4gICdkZWZhdWx0IHBhaXInOiB3aWR0aCxcblxuICAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnOiBmYWxzZSxcbiAgJ3RvIGVtcyc6IGZhbHNlLFxuICAndHJhbnNmb3JtIHJlc29sdXRpb25zJzogdHJ1ZSxcblxuICAnbm8gcXVlcmllcyc6IGZhbHNlLFxuICAnbm8gcXVlcnkgZmFsbGJhY2tzJzogZmFsc2UsXG5cbiAgJ2Jhc2UgZm9udCBzaXplJzogMTZweCxcblxuICAnbGVnYWN5IHN5bnRheCc6IGZhbHNlXG4pO1xuXG4kYnJlYWtwb2ludDogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9zZXR0aW5nc1wiO1xuQGltcG9ydCAnYnJlYWtwb2ludC9jb250ZXh0JztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvaGVscGVycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L3BhcnNlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9uby1xdWVyeSc7XG5cbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcmVzcG9uZC10byc7XG5cbkBpbXBvcnQgXCJicmVha3BvaW50L2xlZ2FjeS1zZXR0aW5nc1wiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbGVnYWN5LXNldHRpbmdzLXdhcm5pbmc7XG5cbiAgLy8gUmVzZXQgY29udGV4dHNcbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG5cbiAgJGJyZWFrcG9pbnQ6IGJyZWFrcG9pbnQoJHF1ZXJ5LCBmYWxzZSk7XG5cbiAgJHF1ZXJ5LXN0cmluZzogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5Jyk7XG4gICRxdWVyeS1mYWxsYmFjazogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2ZhbGxiYWNrJyk7XG5cbiAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLWdldCgkYnJlYWtwb2ludCwgJ2NvbnRleHQgaG9sZGVyJykgIWdsb2JhbDtcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogbWFwLWdldCgkYnJlYWtwb2ludCwgJ3F1ZXJ5IGNvdW50JykgIWdsb2JhbDtcblxuICAvLyBBbGxvdyBmb3IgYW4gYXMtbmVlZGVkIG92ZXJyaWRlIG9yIHVzYWdlIG9mIG5vIHF1ZXJ5IGZhbGxiYWNrLlxuICBAaWYgJG5vLXF1ZXJ5ICE9IGZhbHNlIHtcbiAgICAkcXVlcnktZmFsbGJhY2s6ICRuby1xdWVyeTtcbiAgfVxuXG4gIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gIH1cblxuICAvLyBQcmludCBPdXQgUXVlcnkgU3RyaW5nXG4gIEBpZiBub3QgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSB7XG4gICAgQG1lZGlhICN7JHF1ZXJ5LXN0cmluZ30ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSAhPSBmYWxzZSBvciBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpID09IHRydWUge1xuXG4gICAgJHR5cGU6IHR5cGUtb2YoYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpKTtcbiAgICAkcHJpbnQ6IGZhbHNlO1xuXG4gICAgQGlmICgkdHlwZSA9PSAnYm9vbCcpIHtcbiAgICAgICRwcmludDogdHJ1ZTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdzdHJpbmcnKSB7XG4gICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgKCR0eXBlID09ICdsaXN0Jykge1xuICAgICAgQGVhY2ggJHdyYXBwZXIgaW4gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSAkd3JhcHBlciB7XG4gICAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV3JpdGUgRmFsbGJhY2tcbiAgICBAaWYgKCRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSkgYW5kICgkcHJpbnQgPT0gdHJ1ZSkge1xuICAgICAgJHR5cGUtZmFsbGJhY2s6IHR5cGUtb2YoJHF1ZXJ5LWZhbGxiYWNrKTtcblxuICAgICAgQGlmICgkdHlwZS1mYWxsYmFjayAhPSAnYm9vbCcpIHtcbiAgICAgICAgI3skcXVlcnktZmFsbGJhY2t9ICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xufVxuXG5cbkBtaXhpbiBtcSgkcXVlcnksICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhhcyBTZXR0aW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWhhcygkc2V0dGluZykge1xuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnQsICRzZXR0aW5nKSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2V0IFNldHRpbmdzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWdldCgkc2V0dGluZykge1xuICBAaWYgYnJlYWtwb2ludC1oYXMoJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJGJyZWFrcG9pbnQsICRzZXR0aW5nKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRCcmVha3BvaW50LVNldHRpbmdzLCAkc2V0dGluZyk7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBTZXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGlmIChzdHItaW5kZXgoJHNldHRpbmcsICctJykgb3Igc3RyLWluZGV4KCRzZXR0aW5nLCAnXycpKSBhbmQgc3RyLWluZGV4KCRzZXR0aW5nLCAnICcpID09IG51bGwge1xuICAgIEB3YXJuIFwiV29yZHMgaW4gQnJlYWtwb2ludCBzZXR0aW5ncyBzaG91bGQgYmUgc2VwYXJhdGVkIGJ5IHNwYWNlcywgbm90IGRhc2hlcyBvciB1bmRlcnNjb3Jlcy4gUGxlYXNlIHJlcGxhY2UgZGFzaGVzIGFuZCB1bmRlcnNjb3JlcyBiZXR3ZWVuIHdvcmRzIHdpdGggc3BhY2VzLiBTZXR0aW5ncyB3aWxsIG5vdCB3b3JrIGFzIGV4cGVjdGVkIHVudGlsIGNoYW5nZWQuXCI7XG4gIH1cbiAgJGJyZWFrcG9pbnQ6IG1hcC1tZXJnZSgkYnJlYWtwb2ludCwgKCRzZXR0aW5nOiAkdmFsdWUpKSAhZ2xvYmFsO1xuICBAcmV0dXJuIHRydWU7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKSB7XG4gICRicmVha3BvaW50LWNoYW5nZTogYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG5AbWl4aW4gYmtwdC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTtcbn1cbkBtaXhpbiBia3B0LXNldCgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJlbW92ZSBTZXR0aW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMSB7XG4gICAgJHNldHRpbmdzOiBudGgoJHNldHRpbmdzLCAxKTtcbiAgfVxuXG4gIEBlYWNoICRzZXR0aW5nIGluICRzZXR0aW5ncyB7XG4gICAgJGJyZWFrcG9pbnQ6IG1hcC1yZW1vdmUoJGJyZWFrcG9pbnQsICRzZXR0aW5nKSAhZ2xvYmFsO1xuICB9XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gICRicmVha3BvaW50LXJlc2V0OiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncyk7XG59XG5cbkBtaXhpbiBia3B0LXJlc2V0KCRzZXR0aW5ncy4uLikge1xuICAkYnJlYWtwb2ludC1yZXNldDogYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MpO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBCcmVha3BvaW50IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKTtcbiRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBIYXMgQ29udGV4dFxuLy8gUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB5b3UgYXJlIGluc2lkZSBhIEJyZWFrcG9pbnQgcXVlcnlcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSB7XG4gIEBpZiBsZW5ndGgoJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEJyZWFrcG9pbnQgR2V0IENvbnRleHRcbi8vICRmZWF0dXJlOiBJbnB1dCBmZWF0dXJlIHRvIGdldCBpdCdzIGN1cnJlbnQgTVEgY29udGV4dC4gUmV0dXJucyBmYWxzZSBpZiBubyBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWdldC1jb250ZXh0KCRmZWF0dXJlKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkge1xuICAgICRnZXQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpO1xuICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgb2Ygbm8tcXVlcnkgZnJvbSBnZXQgc2lkZSBzbyAvZmFsc2UvIHByZXBlbmRzIGFyZW4ndCByZXR1cm5lZFxuICAgIEBpZiAkZmVhdHVyZSA9PSAnbm8tcXVlcnknIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRnZXQpID09ICdsaXN0JyBhbmQgbGVuZ3RoKCRnZXQpID4gMSBhbmQgbnRoKCRnZXQsIDEpID09IGZhbHNlIHtcbiAgICAgICAgJGdldDogbnRoKCRnZXQsIGxlbmd0aCgkZ2V0KSk7XG4gICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gJGdldDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIGJyZWFrcG9pbnQtaGFzLWNvbnRleHQoKSBhbmQgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICBAcmV0dXJuIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byBzZXQgY29udGV4dFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpIHtcbiAgQGlmICR2YWx1ZSA9PSAnbW9ub2Nocm9tZScge1xuICAgICRmZWF0dXJlOiAnbW9ub2Nocm9tZSc7XG4gIH1cblxuICAkY3VycmVudDogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gIEBpZiAkY3VycmVudCBhbmQgbGVuZ3RoKCRjdXJyZW50KSA9PSAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICBAd2FybiBcIllvdSBoYXZlIGFscmVhZHkgcXVlcmllZCBhZ2FpbnN0IGAjeyRmZWF0dXJlfWAuIFVuZXhwZWN0ZWQgdGhpbmdzIG1heSBoYXBwZW4gaWYgeW91IHF1ZXJ5IGFnYWluc3QgdGhlIHNhbWUgZmVhdHVyZSBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBgYW5kYCBxdWVyeS4gQnJlYWtwb2ludCBpcyBvdmVyd3JpdGluZyB0aGUgY3VycmVudCBjb250ZXh0IHdpdGggYCN7JHZhbHVlfWBcIjtcbiAgfVxuXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHtcbiAgICAkdi1ob2xkZXI6ICgpO1xuICAgIEBmb3IgJGkgZnJvbSAxIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2LWhvbGRlcjogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2LWhvbGRlcik7XG4gICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCAtIDEge1xuICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCAkdmFsdWUpO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byByZXNldCBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMge1xuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb252ZXJ0cyB0aGUgaW5wdXQgdmFsdWUgdG8gQmFzZSBFTXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpIHtcbiAgJHZhbHVlLXVuaXQ6IHVuaXQoJHZhbHVlKTtcblxuICAvLyBXaWxsIGNvbnZlcnQgcmVsYXRpdmUgRU1zIGludG8gcm9vdCBFTXMuXG4gIEBpZiBicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSBhbmQgdHlwZS1vZihicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSkgPT0gJ251bWJlcicgYW5kICR2YWx1ZS11bml0ID09ICdlbScge1xuICAgICRiYXNlLXVuaXQ6IHVuaXQoYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpO1xuXG4gICAgQGlmICRiYXNlLXVuaXQgPT0gJ3B4JyBvciAkYmFzZS11bml0ID09ICclJyBvciAkYmFzZS11bml0ID09ICdlbScgb3IgJGJhc2UtdW5pdCA9PSAncHQnIHtcbiAgICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkgLyBiYXNlLWNvbnZlcnNpb24oYnJlYWtwb2ludC1nZXQoJ2Jhc2UgZm9udCBzaXplJykpICogMWVtO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnI3ticmVha3BvaW50LWdldChcXCdiYXNlIGZvbnQgc2l6ZVxcJyl9IGlzIG5vdCBzZXQgaW4gdmFsaWQgdW5pdHMgZm9yIGZvbnQgc2l6ZSEnO1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSk7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGJhc2UtY29udmVyc2lvbigkdmFsdWUpIHtcbiAgJHVuaXQ6IHVuaXQoJHZhbHVlKTtcblxuICBAaWYgJHVuaXQgPT0gJ3B4JyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxNnB4ICogMWVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICclJyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxMDAlICogMWVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICdlbScge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09ICdwdCcge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gMTJwdCAqIDFlbTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4vLyAgICBAd2FybiAnRXZlcnl0aGluZyBpcyB0ZXJyaWJsZSEgV2hhdCBoYXZlIHlvdSBkb25lPyEnO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgbWluL21heCBwYWlyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXM6ICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3ItaW5kZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWFzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWhlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLXdpZHRoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbm9jaHJvbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc29sdXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluLW1heCgkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1taW4tbWF4LWZlYXR1cmVzIHtcbiAgICBAaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBjYW4gaGF2ZSBhIHN0cmluZyB2YWx1ZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXM6ICAnb3JpZW50YXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NjYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2x1bWlub3NpdHknO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZlYXR1cmUpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGJyZWFrcG9pbnQtc3RyaW5nLWZlYXR1cmVzIHtcbiAgICBAaWYgYnJlYWtwb2ludC1taW4tbWF4KCRpdGVtKSB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21pbi0jeyRpdGVtfScgb3IgJGZlYXR1cmUgPT0gJ21heC0jeyRpdGVtfScge1xuICAgICAgICBAcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRmZWF0dXJlID09ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgaXMgYSBtZWRpYSB0eXBlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LW1lZGlhLXR5cGVzOiAgJ2FsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdicmFpbGxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VtYm9zc2VkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhbmRoZWxkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NyZWVuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NwZWVjaCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0dHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAndHYnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pcy1tZWRpYSgkZmVhdHVyZSkge1xuICBAZWFjaCAkbWVkaWEgaW4gJGJyZWFrcG9pbnQtbWVkaWEtdHlwZXMge1xuICAgIEBpZiAoJGZlYXR1cmUgPT0gJG1lZGlhKSBvciAoJGZlYXR1cmUgPT0gJ25vdCAjeyRtZWRpYX0nKSBvciAoJGZlYXR1cmUgPT0gJ29ubHkgI3skbWVkaWF9Jykge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBzdGFuZCBhbG9uZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nLWZlYXR1cmVzOiAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbG9yLWluZGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdncmlkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb25vY2hyb21lJztcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nLWZlYXR1cmVzIHtcbiAgICBAaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSB7XG4gICRyZXNvbHV0aW9uczogJ2RldmljZS1waXhlbC1yYXRpbycsICdkcHInO1xuXG4gIEBpZiBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykge1xuICAgICRyZXNvbHV0aW9uczogYXBwZW5kKCRyZXNvbHV0aW9ucywgJ3Jlc29sdXRpb24nKTtcbiAgfVxuXG4gIEBlYWNoICRyZXNvIGluICRyZXNvbHV0aW9ucyB7XG4gICAgQGlmIGluZGV4KCRmZWF0dXJlLCAkcmVzbykgb3IgaW5kZXgoJGZlYXR1cmUsICdtaW4tI3skcmVzb30nKSBvciBpbmRleCgkZmVhdHVyZSwgJ21heC0jeyRyZXNvfScpIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGFyc2VyIFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwicGFyc2Vycy9xdWVyeVwiO1xuQGltcG9ydCBcInBhcnNlcnMvc2luZ2xlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy9kb3VibGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL3RyaXBsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvcmVzb2x1dGlvblwiO1xuXG4kTWVtby1FeGlzdHM6IGZ1bmN0aW9uLWV4aXN0cyhtZW1vLWdldCkgYW5kIGZ1bmN0aW9uLWV4aXN0cyhtZW1vLXNldCk7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBGdW5jdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkcXVlcnksICRjb250ZXh0cy4uLikge1xuICAkcnVuOiB0cnVlO1xuICAkcmV0dXJuOiAoKTtcblxuICAvLyBHcmFiIHRoZSBNZW1vIE91dHB1dCBpZiBNZW1vaXphdGlvbiBjYW4gYmUgYSB0aGluZ1xuICBAaWYgJE1lbW8tRXhpc3RzIHtcbiAgICAkcmV0dXJuOiBtZW1vLWdldChicmVha3BvaW50LCBicmVha3BvaW50ICRxdWVyeSAkY29udGV4dHMpO1xuXG4gICAgQGlmICRyZXR1cm4gIT0gbnVsbCB7XG4gICAgICAkcnVuOiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAaWYgbm90ICRNZW1vLUV4aXN0cyBvciAkcnVuIHtcbiAgICAvLyBJbnRlcm5hbCBWYXJpYWJsZXNcbiAgICAkcXVlcnktc3RyaW5nOiAnJztcbiAgICAkcXVlcnktZmFsbGJhY2s6IGZhbHNlO1xuICAgICRyZXR1cm46ICgpO1xuXG4gICAgLy8gUmVzZXJ2ZSBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkaG9sZGVyLWNvbnRleHQ6ICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI7XG4gICAgJGhvbGRlci1xdWVyeS1jb3VudDogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDtcblxuICAgIC8vIFJlc2V0IEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xuXG5cbiAgICAvLyBUZXN0IHRvIHNlZSBpZiBpdCdzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3RcbiAgICAkb3ItbGlzdDogaWYobGlzdC1zZXBhcmF0b3IoJHF1ZXJ5KSA9PSAnY29tbWEnLCB0cnVlLCBmYWxzZSk7XG5cblxuICAgIEBpZiAoJG9yLWxpc3QgPT0gZmFsc2UgYW5kIGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4JykgPT0gZmFsc2UpIHtcbiAgICAgICRxdWVyeS1zdHJpbmc6IGJyZWFrcG9pbnQtcGFyc2UoJHF1ZXJ5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGxlbmd0aDogbGVuZ3RoKCRxdWVyeSk7XG5cbiAgICAgICRsYXN0OiBudGgoJHF1ZXJ5LCAkbGVuZ3RoKTtcbiAgICAgICRxdWVyeS1mYWxsYmFjazogYnJlYWtwb2ludC1uby1xdWVyeSgkbGFzdCk7XG5cbiAgICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSB7XG4gICAgICAgICRsZW5ndGg6ICRsZW5ndGggLSAxO1xuICAgICAgfVxuXG4gICAgICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4JykgPT0gdHJ1ZSkge1xuICAgICAgICAkbXE6ICgpO1xuXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgJG1xOiBhcHBlbmQoJG1xLCBudGgoJHF1ZXJ5LCAkaSksIGNvbW1hKTtcbiAgICAgICAgfVxuXG4gICAgICAgICRxdWVyeS1zdHJpbmc6IGJyZWFrcG9pbnQtcGFyc2UoJG1xKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHF1ZXJ5LXN0cmluZzogJyc7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgJHF1ZXJ5LXN0cmluZzogJHF1ZXJ5LXN0cmluZyArIGlmKCRpID09IDEsICcnLCAnLCAnKSArIGJyZWFrcG9pbnQtcGFyc2UobnRoKCRxdWVyeSwgJGkpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICRyZXR1cm46ICgncXVlcnknOiAkcXVlcnktc3RyaW5nLFxuICAgICAgICAnZmFsbGJhY2snOiAkcXVlcnktZmFsbGJhY2ssXG4gICAgICAgICdjb250ZXh0IGhvbGRlcic6ICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsXG4gICAgICAgICdxdWVyeSBjb3VudCc6ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnRcbiAgICApO1xuICAgIEBpZiBsZW5ndGgoJGNvbnRleHRzKSA+IDAgYW5kIG50aCgkY29udGV4dHMsIDEpICE9IGZhbHNlIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2Uge1xuICAgICAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgnbm8tcXVlcnknLCAkcXVlcnktZmFsbGJhY2spO1xuICAgICAgfVxuICAgICAgJGNvbnRleHQtbWFwOiAoKTtcbiAgICAgIEBlYWNoICRjb250ZXh0IGluICRjb250ZXh0cyB7XG4gICAgICAgICRjb250ZXh0LW1hcDogbWFwLW1lcmdlKCRjb250ZXh0LW1hcCwgKCRjb250ZXh0OiBicmVha3BvaW50LWdldC1jb250ZXh0KCRjb250ZXh0KSkpO1xuICAgICAgfVxuICAgICAgJHJldHVybjogbWFwLW1lcmdlKCRyZXR1cm4sIChjb250ZXh0OiAkY29udGV4dC1tYXApKTtcbiAgICB9XG5cbiAgICAvLyBSZXNldCBHbG9iYWwgUHJpdmF0ZSBCcmVha3BvaW50IENvbnRleHRcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsO1xuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcblxuICAgIEBpZiAkTWVtby1FeGlzdHMge1xuICAgICAgJGhvbGRlcjogbWVtby1zZXQoYnJlYWtwb2ludCwgYnJlYWtwb2ludCAkcXVlcnkgJGNvbnRleHRzLCAkcmV0dXJuKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRyZXR1cm47XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR2VuZXJhbCBCcmVha3BvaW50IFBhcnNlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZSgkcXVlcnkpIHtcbiAgLy8gSW5jcmVhc2UgbnVtYmVyIG9mICdhbmQnIHF1ZXJpZXNcbiAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCArIDEgIWdsb2JhbDtcblxuICAvLyBTZXQgdXAgTWVkaWEgVHlwZVxuICAkcXVlcnktcHJpbnQ6ICcnO1xuXG4gICRmb3JjZS1hbGw6ICgoYnJlYWtwb2ludC1nZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJykgPT0gdHJ1ZSkgYW5kIChicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpID09ICdhbGwnKSk7XG4gICRlbXB0eS1tZWRpYTogdHJ1ZTtcbiAgQGlmICgkZm9yY2UtYWxsID09IHRydWUpIG9yIChicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpICE9ICdhbGwnKSB7XG4gICAgLy8gRm9yY2UgdGhlIHByaW50IG9mIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGUgaWYgKGZvcmNlIGFsbCBpcyB0cnVlIGFuZCBkZWZhdWx0IG1lZGlhIHR5cGUgaXMgYWxsKSBvciAoZGVmYXVsdCBtZWRpYSB0eXBlIGlzIG5vdCBhbGwpXG4gICAgJHF1ZXJ5LXByaW50OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpO1xuICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XG4gIH1cblxuXG4gICRxdWVyeS1yZXNvbHV0aW9uOiBmYWxzZTtcblxuICAkcXVlcnktaG9sZGVyOiBicmVha3BvaW50LXBhcnNlLXF1ZXJ5KCRxdWVyeSk7XG5cblxuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHBhcnNlZCBvdXQgcXVlcnkgYW5kIHdyaXRlIGl0IHRvICRxdWVyeS1wcmludFxuICAkZmlyc3Q6IHRydWU7XG5cbiAgQGVhY2ggJGZlYXR1cmUgaW4gJHF1ZXJ5LWhvbGRlciB7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCRmZWF0dXJlKTtcblxuICAgIC8vIFBhcnNlIGEgc2luZ2xlIGZlYXR1cmVcbiAgICBAaWYgKCRsZW5ndGggPT0gMSkge1xuICAgICAgLy8gRmVhdHVyZSBpcyBjdXJyZW50bHkgYSBsaXN0LCBncmFiIHRoZSBhY3R1YWwgdmFsdWVcbiAgICAgICRmZWF0dXJlOiBudGgoJGZlYXR1cmUsIDEpO1xuXG4gICAgICAvLyBNZWRpYSBUeXBlIG11c3QgYnkgY29udmVudGlvbiBiZSB0aGUgZmlyc3QgaXRlbSwgc28gaXQncyBzYWZlIHRvIGZsYXQgb3ZlcnJpZGUgJHF1ZXJ5LXByaW50LCB3aGljaCByaWdodCBub3cgc2hvdWxkIG9ubHkgYmUgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZVxuICAgICAgQGlmIChicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSkge1xuICAgICAgICBAaWYgKCRmb3JjZS1hbGwgPT0gdHJ1ZSkgb3IgKCRmZWF0dXJlICE9ICdhbGwnKSB7XG4gICAgICAgICAgLy8gRm9yY2UgdGhlIHByaW50IG9mIHRoZSBkZWZhdWx0IG1lZGlhIHR5cGUgaWYgKGZvcmNlIGFsbCBpcyB0cnVlIGFuZCBkZWZhdWx0IG1lZGlhIHR5cGUgaXMgYWxsKSBvciAoZGVmYXVsdCBtZWRpYSB0eXBlIGlzIG5vdCBhbGwpXG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAkZmVhdHVyZTtcbiAgICAgICAgICAkZW1wdHktbWVkaWE6IGZhbHNlO1xuXG4gICAgICAgICAgLy8gU2V0IENvbnRleHRcbiAgICAgICAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtZWRpYSwgJHF1ZXJ5LXByaW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFBhcnNlIGEgZG91YmxlIGZlYXR1cmVcbiAgICBAZWxzZSBpZiAoJGxlbmd0aCA9PSAyKSB7XG4gICAgICBAaWYgKGJyZWFrcG9pbnQtaXMtcmVzb2x1dGlvbigkZmVhdHVyZSkgIT0gZmFsc2UpIHtcbiAgICAgICAgJHF1ZXJ5LXJlc29sdXRpb246ICRmZWF0dXJlO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcGFyc2VkOiBudWxsO1xuICAgICAgICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLFxuICAgICAgICAvLyB3ZSBjaGVjayB0byBzZWUgaWYgb25lIGlzIGEgc2luZ2xlLXN0cmluZyB2YWx1ZSxcbiAgICAgICAgLy8gdGhlbiB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcbiAgICAgICAgJGFscGhhOiBudGgoJGZlYXR1cmUsIDEpO1xuICAgICAgICAkYmV0YTogbnRoKCRmZWF0dXJlLCAyKTtcbiAgICAgICAgQGlmIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkYWxwaGEpIG9yIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkYmV0YSkge1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRhbHBoYSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRiZXRhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFBhcnNlIGEgdHJpcGxlIGZlYXR1cmVcbiAgICBAZWxzZSBpZiAoJGxlbmd0aCA9PSAzKSB7XG4gICAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpO1xuICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICB9XG5cbiAgfVxuXG4gIEBpZiAoJHF1ZXJ5LXJlc29sdXRpb24gIT0gZmFsc2UpIHtcbiAgICAkcXVlcnktcHJpbnQ6IGJyZWFrcG9pbnQtYnVpbGQtcmVzb2x1dGlvbigkcXVlcnktcHJpbnQsICRxdWVyeS1yZXNvbHV0aW9uLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gIH1cblxuICAvLyBMb29wIHRocm91Z2ggZWFjaCBmZWF0dXJlIHRoYXQncyBiZWVuIGRldGVjdGVkIHNvIGZhciBhbmQgYXBwZW5kICdmYWxzZScgdG8gdGhlIHRoZSB2YWx1ZSBsaXN0IHRvIGluY3JlbWVudCB0aGVpciBjb3VudGVyc1xuICBAZWFjaCAkZiwgJHYgaW4gJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciB7XG4gICAgJHYtaG9sZGVyOiAkdjtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHYtaG9sZGVyKTtcbiAgICBAaWYgbGVuZ3RoKCR2LWhvbGRlcikgPCAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAkbGVuZ3RoIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgICBAaWYgJGYgPT0gJ21lZGlhJyB7XG4gICAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZjogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHF1ZXJ5LXByaW50O1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtcXVlcnkoJHF1ZXJ5KSB7XG4gIC8vIFBhcnNlIGZlYXR1cmVzIG91dCBvZiBhbiBpbmRpdmlkdWFsIHF1ZXJ5XG4gICRmZWF0dXJlLWhvbGRlcjogKCk7XG4gICRxdWVyeS1ob2xkZXI6ICgpO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHF1ZXJ5KTtcblxuICBAaWYgJGxlbmd0aCA9PSAyIHtcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgYSBzdHJpbmcvbnVtYmVyLCBudW1iZXIvc3RyaW5nLCBjaGVjayB0byBzZWUgaWYgaXQncyBhIHZhbGlkIHN0cmluZy9udW1iZXIgcGFpciBvciB0d28gc2luZ2xlc1xuICAgIEBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdudW1iZXInKSBvciAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdzdHJpbmcnKSB7XG5cbiAgICAgICRudW1iZXI6ICcnO1xuICAgICAgJHZhbHVlOiAnJztcblxuICAgICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIHtcbiAgICAgICAgJG51bWJlcjogbnRoKCRxdWVyeSwgMik7XG4gICAgICAgICR2YWx1ZTogbnRoKCRxdWVyeSwgMSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRudW1iZXI6IG50aCgkcXVlcnksIDEpO1xuICAgICAgICAkdmFsdWU6IG50aCgkcXVlcnksIDIpO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgc3RyaW5nIHZhbHVlIGNhbiBiZSBhIHNpbmdsZSB2YWx1ZSwgY2hlY2sgdG8gc2VlIGlmIHRoZSBudW1iZXIgcGFzc2VkIGluIGlzIGEgdmFsaWQgaW5wdXQgZm9yIHNhaWQgc2luZ2xlIHZhbHVlLiBGb3J0dW5hdGVseSwgYWxsIGN1cnJlbnQgc2luZ2xlLXZhbHVlIG9wdGlvbnMgb25seSBhY2NlcHQgdW5pdGxlc3MgbnVtYmVycywgc28gdGhpcyBjaGVjayBpcyBlYXN5LlxuICAgICAgQGlmIGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkdmFsdWUpIHtcbiAgICAgICAgQGlmIHVuaXRsZXNzKCRudW1iZXIpIHtcbiAgICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcbiAgICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBJZiB0aGUgc3RyaW5nIGlzIGEgbWVkaWEgdHlwZSwgc3BsaXQgdGhlIHF1ZXJ5XG4gICAgICBAaWYgYnJlYWtwb2ludC1pcy1tZWRpYSgkdmFsdWUpIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDEpKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsIG50aCgkcXVlcnksIDIpKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgICAgLy8gSWYgaXQncyBub3QgYSBzaW5nbGUgZmVhdHVyZSwgd2UncmUganVzdCBnb2luZyB0byBhc3N1bWUgaXQncyBhIHByb3BlciBzdHJpbmcvdmFsdWUgcGFpciwgYW5kIHJvbGwgd2l0aCBpdC5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQoJHZhbHVlLCAkbnVtYmVyLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuXG4gICAgfVxuICAgIC8vIElmIHRoZXkncmUgYm90aCBudW1iZXJzLCB3ZSBhc3N1bWUgaXQncyBhIGRvdWJsZSBhbmQgcm9sbCB3aXRoIHRoYXRcbiAgICBAZWxzZSBpZiAodHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMikpID09ICdudW1iZXInKSB7XG4gICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICB9XG4gICAgLy8gSWYgdGhleSdyZSBib3RoIHN0cmluZ3MgYW5kIG5laXRoZXIgYXJlIHNpbmdsZXMsIHdlIHJvbGwgd2l0aCB0aGF0LlxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAxKSwgbnRoKCRxdWVyeSwgMiksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7XG4gICAgLy8gSWYgd2UndmUgZ290IHRocmVlIGl0ZW1zIGFuZCBub25lIGlzIGEgbGlzdCwgd2UgY2hlY2sgdG8gc2VlXG4gICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpICE9ICdsaXN0JyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgIT0gJ2xpc3QnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDMpKSAhPSAnbGlzdCcge1xuICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgaXRlbXMgYXJlIHNpbmdsZSBzdHJpbmcgdmFsdWVzIGFuZCBub25lIG9mIHRoZSB2YWx1ZXMgYXJlIG1lZGlhIHZhbHVlcywgd2UncmUgZ29vZC5cbiAgICAgIEBpZiAobm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAxKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMikpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDMpKSkgYW5kICAoKG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMikpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAzKSkpKSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkZmVhdHVyZS1ob2xkZXIsIG50aCgkcXVlcnksIDMpLCBzcGFjZSk7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgICAgLy8gbGV0J3MgY2hlY2sgdG8gc2VlIGlmIHRoZSBmaXJzdCBpdGVtIGlzIGEgbWVkaWEgdHlwZVxuICAgICAgQGVsc2UgaWYgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZChudGgoJHF1ZXJ5LCAyKSwgbnRoKCRxdWVyeSwgMyksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlcik7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiBpdCdzIGEgc2luZ2xlIGl0ZW0sIG9yIGlmIGl0J3Mgbm90IGEgc3BlY2lhbCBjYXNlIGRvdWJsZSBvciB0cmlwbGUsIHdlIGNhbiBzaW1wbHkgcmV0dXJuIHRoZSBxdWVyeS5cbiAgQHJldHVybiAkcXVlcnk7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInNpbmdsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXNpbmdsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAvLyBJZiBpdCdzIGEgc2luZ2xlIGZlYXR1cmUgdGhhdCBjYW4gc3RhbmQgYWxvbmUsIHdlIGxldCBpdFxuICBAaWYgKGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZygkZmVhdHVyZSkpIHtcbiAgICAkcGFyc2VkOiAkZmVhdHVyZTtcbiAgICAvLyBTZXQgQ29udGV4dFxuICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkZmVhdHVyZSk7XG4gIH1cbiAgLy8gSWYgaXQncyBub3QgYSBzdGFuZCBhbG9uZSBmZWF0dXJlLCB3ZSBwYXNzIGl0IG9mZiB0byB0aGUgZGVmYXVsdCBoYW5kbGVyLlxuICBAZWxzZSB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0KCRmZWF0dXJlKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxlYWRlciArICcoJyArICRwYXJzZWQgKyAnKSc7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0KCRmZWF0dXJlKSB7XG4gICRkZWZhdWx0OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBmZWF0dXJlJyk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGRlZmF1bHQsICRmZWF0dXJlKTtcblxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSBhbmQgKHR5cGUtb2YoJGZlYXR1cmUpID09ICdudW1iZXInKSB7XG4gICAgQHJldHVybiAnI3skZGVmYXVsdH06ICN7YnJlYWtwb2ludC10by1iYXNlLWVtKCRmZWF0dXJlKX0nO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3skZmVhdHVyZX0nO1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImRvdWJsZS9kZWZhdWx0LXBhaXJcIjtcbkBpbXBvcnQgXCJkb3VibGUvZG91YmxlLXN0cmluZ1wiO1xuQGltcG9ydCBcImRvdWJsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAkZmlyc3Q6IG50aCgkZmVhdHVyZSwgMSk7XG4gICRzZWNvbmQ6IG50aCgkZmVhdHVyZSwgMik7XG5cbiAgLy8gSWYgd2UndmUgZ290IHR3byBudW1iZXJzLCB3ZSBrbm93IHdlIG5lZWQgdG8gdXNlIHRoZSBkZWZhdWx0IHBhaXIgYmVjYXVzZSB0aGVyZSBhcmUgbm8gbWVkaWEgcXVlcmllcyB0aGF0IGhhcyBhIG1lZGlhIGZlYXR1cmUgdGhhdCBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkZmlyc3QpID09ICdudW1iZXInIGFuZCB0eXBlLW9mKCRzZWNvbmQpID09ICdudW1iZXInIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQtcGFpcigkZmlyc3QsICRzZWNvbmQpO1xuICB9XG4gIC8vIElmIHRoZXkgYXJlIGJvdGggc3RyaW5ncywgd2Ugc2VuZCBpdCB0aHJvdWdoIHRoZSBzdHJpbmcgcGFyc2VyXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZigkc2Vjb25kKSA9PSAnc3RyaW5nJyB7XG4gICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtc3RyaW5nKCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cbiAgLy8gSWYgaXQncyBhIHN0cmluZy9udW1iZXIgcGFpciwgd2UgcGFyc2UgaXQgYXMgYSBub3JtYWwgZG91YmxlXG4gIEBlbHNlIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cblxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdC1wYWlyKCRmaXJzdCwgJHNlY29uZCkge1xuICAkZGVmYXVsdDogYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgcGFpcicpO1xuICAkbWluOiAnJztcbiAgJG1heDogJyc7XG5cbiAgLy8gU29ydCBpbnRvIG1pbiBhbmQgbWF4XG4gICRtaW46IG1pbigkZmlyc3QsICRzZWNvbmQpO1xuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZGVmYXVsdH0sICRtaW4pO1xuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtYXgtI3skZGVmYXVsdH0sICRtYXgpO1xuXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtaW4pO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcbiAgfVxuXG4gIEByZXR1cm4gJyhtaW4tI3skZGVmYXVsdH06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGRlZmF1bHR9OiAjeyRtYXh9KSc7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtc3RyaW5nKCRmaXJzdCwgJHNlY29uZCkge1xuICAkZmVhdHVyZTogJyc7XG4gICR2YWx1ZTogJyc7XG5cbiAgLy8gVGVzdCB0byBzZWUgd2hpY2ggaXMgdGhlIGZlYXR1cmUgYW5kIHdoaWNoIGlzIHRoZSB2YWx1ZVxuICBAaWYgKGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRmaXJzdCkgPT0gdHJ1ZSkge1xuICAgICRmZWF0dXJlOiAkZmlyc3Q7XG4gICAgJHZhbHVlOiAkc2Vjb25kO1xuICB9XG4gIEBlbHNlIGlmIChicmVha3BvaW50LXN0cmluZy12YWx1ZSgkc2Vjb25kKSA9PSB0cnVlKSB7XG4gICAgJGZlYXR1cmU6ICRzZWNvbmQ7XG4gICAgJHZhbHVlOiAkZmlyc3Q7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiTmVpdGhlciAjeyRmaXJzdH0gbm9yICN7JHNlY29uZH0gaXMgYSB2YWxpZCBtZWRpYSBxdWVyeSBuYW1lLlwiO1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQHJldHVybiAnKCN7JGZlYXR1cmV9OiAjeyR2YWx1ZX0pJztcbn0iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kb3VibGUtZGVmYXVsdCgkZmlyc3QsICRzZWNvbmQpIHtcbiAgJGZlYXR1cmU6ICcnO1xuICAkdmFsdWU6ICcnO1xuXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ3N0cmluZycge1xuICAgICRmZWF0dXJlOiAkZmlyc3Q7XG4gICAgJHZhbHVlOiAkc2Vjb25kO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkZmVhdHVyZTogJHNlY29uZDtcbiAgICAkdmFsdWU6ICRmaXJzdDtcbiAgfVxuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCRmZWF0dXJlLCAkdmFsdWUpO1xuXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkdmFsdWU6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkdmFsdWUpO1xuICB9XG5cbiAgQHJldHVybiAnKCN7JGZlYXR1cmV9OiAjeyR2YWx1ZX0pJ1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnQgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJ0cmlwbGUvZGVmYXVsdFwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS10cmlwbGUoJGZlYXR1cmUsICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRwYXJzZWQ6ICcnO1xuICAkbGVhZGVyOiAnJztcblxuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICAvLyBzZXBhcmF0ZSB0aGUgc3RyaW5nIGZlYXR1cmVzIGZyb20gdGhlIHZhbHVlIG51bWJlcnNcbiAgJHN0cmluZzogbnVsbDtcbiAgJG51bWJlcnM6IG51bGw7XG4gIEBlYWNoICR2YWwgaW4gJGZlYXR1cmUge1xuICAgIEBpZiB0eXBlLW9mKCR2YWwpID09IHN0cmluZyB7XG4gICAgICAkc3RyaW5nOiAkdmFsO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgdHlwZS1vZigkbnVtYmVycykgPT0gJ251bGwnIHtcbiAgICAgICAgJG51bWJlcnM6ICR2YWw7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRudW1iZXJzOiBhcHBlbmQoJG51bWJlcnMsICR2YWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlLWRlZmF1bHQoJHN0cmluZywgbnRoKCRudW1iZXJzLCAxKSwgbnRoKCRudW1iZXJzLCAyKSk7XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJHBhcnNlZDtcblxufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlLWRlZmF1bHQoJGZlYXR1cmUsICRmaXJzdCwgJHNlY29uZCkge1xuXG4gIC8vIFNvcnQgaW50byBtaW4gYW5kIG1heFxuICAkbWluOiBtaW4oJGZpcnN0LCAkc2Vjb25kKTtcbiAgJG1heDogbWF4KCRmaXJzdCwgJHNlY29uZCk7XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWluLSN7JGZlYXR1cmV9LCAkbWluKTtcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQobWF4LSN7JGZlYXR1cmV9LCAkbWF4KTtcblxuICAvLyBNYWtlIHRoZW0gRU1zIGlmIG5lZWQgYmVcbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICRtaW46IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWluKTtcbiAgICAkbWF4OiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1heCk7XG4gIH1cblxuICBAcmV0dXJuICcobWluLSN7JGZlYXR1cmV9OiAjeyRtaW59KSBhbmQgKG1heC0jeyRmZWF0dXJlfTogI3skbWF4fSknO1xufVxuIiwiQGltcG9ydCBcInJlc29sdXRpb24vcmVzb2x1dGlvblwiO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1idWlsZC1yZXNvbHV0aW9uKCRxdWVyeS1wcmludCwgJHF1ZXJ5LXJlc29sdXRpb24sICRlbXB0eS1tZWRpYSwgJGZpcnN0KSB7XG4gICRsZWFkZXI6ICcnO1xuICAvLyBJZiB3ZSdyZSBmb3JjaW5nXG4gIEBpZiBub3QgKCRlbXB0eS1tZWRpYSkgb3Igbm90ICgkZmlyc3QpIHtcbiAgICAkbGVhZGVyOiAnYW5kICc7XG4gIH1cblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIGFuZCAkcXVlcnktcmVzb2x1dGlvbiB7XG4gICAgJHJlc29sdXRpb25zOiBicmVha3BvaW50LW1ha2UtcmVzb2x1dGlvbnMoJHF1ZXJ5LXJlc29sdXRpb24pO1xuICAgICRsZW5ndGg6IGxlbmd0aCgkcmVzb2x1dGlvbnMpO1xuICAgICRxdWVyeS1ob2xkZXI6ICcnO1xuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICRxdWVyeTogJyN7JHF1ZXJ5LXByaW50fSAjeyRsZWFkZXJ9I3tudGgoJHJlc29sdXRpb25zLCAkaSl9JztcbiAgICAgIEBpZiAkaSA9PSAxIHtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogJHF1ZXJ5O1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiAnI3skcXVlcnktaG9sZGVyfSwgI3skcXVlcnl9JztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFJldHVybiB3aXRoIGF0dGFjaGVkIHJlc29sdXRpb25cbiAgICBAcmV0dXJuICRxdWVyeS1wcmludDtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWFrZS1yZXNvbHV0aW9ucygkcmVzb2x1dGlvbikge1xuICAkbGVuZ3RoOiBsZW5ndGgoJHJlc29sdXRpb24pO1xuXG4gICRvdXRwdXQ6ICgpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDIge1xuICAgICRmZWF0dXJlOiAnJztcbiAgICAkdmFsdWU6ICcnO1xuXG4gICAgLy8gRmluZCB3aGljaCBpcyBudW1iZXJcbiAgICBAaWYgdHlwZS1vZihudGgoJHJlc29sdXRpb24sIDEpKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IG50aCgkcmVzb2x1dGlvbiwgMSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR2YWx1ZTogbnRoKCRyZXNvbHV0aW9uLCAyKTtcbiAgICB9XG5cbiAgICAvLyBEZXRlcm1pbmUgbWluL21heC9zdGFuZGFyZFxuICAgIEBpZiBpbmRleCgkcmVzb2x1dGlvbiwgJ21pbi1yZXNvbHV0aW9uJykge1xuICAgICAgJGZlYXR1cmU6ICdtaW4tJztcbiAgICB9XG4gICAgQGVsc2UgaWYgaW5kZXgoJHJlc29sdXRpb24sICdtYXgtcmVzb2x1dGlvbicpIHtcbiAgICAgICRmZWF0dXJlOiAnbWF4LSc7XG4gICAgfVxuXG4gICAgJHN0YW5kYXJkOiAnKCN7JGZlYXR1cmV9cmVzb2x1dGlvbjogI3skdmFsdWV9KSc7XG5cbiAgICAvLyBJZiB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGRwcHgsXG4gICAgQGlmIHVuaXQoJHZhbHVlKSAhPSAnZHBweCcge1xuICAgICAgJGJhc2U6IDk2ZHBpO1xuICAgICAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZHBjbScge1xuICAgICAgICAkYmFzZTogMjQzLjg0ZHBjbTtcbiAgICAgIH1cbiAgICAgIC8vIFdyaXRlIG91dCBmZWF0dXJlIHRlc3RzXG4gICAgICAkd2Via2l0OiAnJztcbiAgICAgICRtb3o6ICcnO1xuICAgICAgJHdlYmtpdDogJygtd2Via2l0LSN7JGZlYXR1cmV9ZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvICRiYXNlfSknO1xuICAgICAgJG1vejogJygjeyRmZWF0dXJlfS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyR2YWx1ZSAvICRiYXNlfSknO1xuICAgICAgLy8gQXBwZW5kIHRvIG91dHB1dFxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRzdGFuZGFyZCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICR3ZWJraXQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkbW96LCBzcGFjZSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6ICcnO1xuICAgICAgJG1vejogJyc7XG4gICAgICAkd2Via2l0OiAnKC13ZWJraXQtI3skZmVhdHVyZX1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gMWRwcHh9KSc7XG4gICAgICAkbW96OiAnKCN7JGZlYXR1cmV9LW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gMWRwcHh9KSc7XG4gICAgICAkZmFsbGJhY2s6ICcoI3skZmVhdHVyZX1yZXNvbHV0aW9uOiAjeyR2YWx1ZSAvIDFkcHB4ICogOTZkcGl9KSc7XG4gICAgICAvLyBBcHBlbmQgdG8gb3V0cHV0XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHN0YW5kYXJkLCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHdlYmtpdCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRtb3osIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkZmFsbGJhY2ssIHNwYWNlKTtcbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LW5vLXF1ZXJ5KCRxdWVyeSkge1xuICBAaWYgdHlwZS1vZigkcXVlcnkpID09ICdsaXN0JyB7XG4gICAgJGtleXdvcmQ6IG50aCgkcXVlcnksIDEpO1xuXG4gICAgQGlmIHR5cGUtb2YoJGtleXdvcmQpID09ICdzdHJpbmcnIGFuZCAoJGtleXdvcmQgPT0gJ25vLXF1ZXJ5JyBvciAka2V5d29yZCA9PSAnbm8gcXVlcnknIG9yICRrZXl3b3JkID09ICdmYWxsYmFjaycpIHtcbiAgICAgIEByZXR1cm4gbnRoKCRxdWVyeSwgMik7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgdGhlIEJyZWFrcG9pbnRzIHZhcmlhYmxlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG4kQlJFQUtQT0lOVFM6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJlc3BvbmQtdG8gQVBJIE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtaXhpbiByZXNwb25kLXRvKCRjb250ZXh0LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA+IDAgYW5kIGxlbmd0aCgkQlJFQUtQT0lOVFMpID09IDAge1xuICAgIEB3YXJuIFwiSW4gb3JkZXIgdG8gYXZvaWQgdmFyaWFibGUgbmFtZXNwYWNlIGNvbGxpc2lvbnMsIHdlIGhhdmUgdXBkYXRlZCB0aGUgd2F5IHRvIGFkZCBicmVha3BvaW50cyBmb3IgcmVzcG9uZC10by4gUGxlYXNlIGNoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIGAkYnJlYWtwb2ludHM6IGFkZC1icmVha3BvaW50KClgIHRvIGBAaW5jbHVkZSBhZGQtYnJlYWtwb2ludCgpYC4gVGhlIGBhZGQtYnJlYWtwb2ludCgpYCBmdW5jdGlvbiB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS5cIjtcbiAgICAkQlJFQUtQT0lOVFM6ICRicmVha3BvaW50cyAhZ2xvYmFsO1xuICAgICRicmVha3BvaW50czogKCkgIWdsb2JhbDtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRCUkVBS1BPSU5UUykgIT0gJ21hcCcge1xuICAgIC8vIEp1c3QgaW4gY2FzZSBzb21lb25lIHdyaXRlcyBnaWJiZXJpc2ggdG8gdGhlICRicmVha3BvaW50cyB2YXJpYWJsZS5cbiAgICBAd2FybiBcIllvdXIgYnJlYWtwb2ludHMgYXJlbid0IGEgbWFwISBgcmVzcG9uZC10b2AgZXhwZWN0cyBhIG1hcC4gUGxlYXNlIGNoZWNrIHRoZSB2YWx1ZSBvZiAkQlJFQUtQT0lOVFMgdmFyaWFibGUuXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkY29udGV4dCkge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWFwLWdldCgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpIHtcbiAgICBAd2FybiBcImAjeyRjb250ZXh0fWAgaXNuJ3QgYSBkZWZpbmVkIGJyZWFrcG9pbnQhIFBsZWFzZSBhZGQgaXQgdXNpbmcgYCRicmVha3BvaW50czogYWRkLWJyZWFrcG9pbnQoYCN7JGNvbnRleHR9YCwgJHZhbHVlKTtgXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiWW91IGhhdmVuJ3QgY3JlYXRlZCBhbnkgYnJlYWtwb2ludHMgeWV0ISBNYWtlIHNvbWUgYWxyZWFkeSEgYEBpbmNsdWRlIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdClgXCI7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBBZGQgQnJlYWtwb2ludCB0byBCcmVha3BvaW50c1xuLy8gVE9ETzogUmVtb3ZlIGZ1bmN0aW9uIGluIG5leHQgcmVsZWFzZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0LCAkb3ZlcndyaXRlOiBmYWxzZSkge1xuICAkb3V0cHV0OiAoJG5hbWU6ICRia3B0KTtcblxuICBAaWYgbGVuZ3RoKCRicmVha3BvaW50cykgPT0gMCB7XG4gICAgQHJldHVybiAkb3V0cHV0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkgYW5kICRvdmVyd3JpdGUgIT0gdHJ1ZSB7XG4gICAgICBAd2FybiBcIllvdSBhbHJlYWR5IGhhdmUgYSBicmVha3BvaW50IG5hbWVkIGAjeyRuYW1lfWAsIHBsZWFzZSBjaG9vc2UgYW5vdGhlciBicmVha3BvaW50IG5hbWUsIG9yIHBhc3MgaW4gYCRvdmVyd3JpdGU6IHRydWVgIHRvIG92ZXJ3cml0ZSB0aGUgcHJldmlvdXMgYnJlYWtwb2ludC5cIjtcbiAgICAgIEByZXR1cm4gJGJyZWFrcG9pbnRzO1xuICAgIH1cbiAgICBAZWxzZSBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkbmFtZSkgb3IgJG92ZXJ3cml0ZSA9PSB0cnVlIHtcbiAgICAgIEByZXR1cm4gbWFwLW1lcmdlKCRicmVha3BvaW50cywgJG91dHB1dCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQsICRvdmVyd3JpdGU6IGZhbHNlKSB7XG4gICRvdXRwdXQ6ICgkbmFtZTogJGJrcHQpO1xuXG4gIEBpZiBsZW5ndGgoJEJSRUFLUE9JTlRTKSA9PSAwIHtcbiAgICAkQlJFQUtQT0lOVFM6ICRvdXRwdXQgIWdsb2JhbDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRCUkVBS1BPSU5UUywgJG5hbWUpIGFuZCAkb3ZlcndyaXRlICE9IHRydWUge1xuICAgICAgQHdhcm4gXCJZb3UgYWxyZWFkeSBoYXZlIGEgYnJlYWtwb2ludCBuYW1lZCBgI3skbmFtZX1gLCBwbGVhc2UgY2hvb3NlIGFub3RoZXIgYnJlYWtwb2ludCBuYW1lLCBvciBwYXNzIGluIGAkb3ZlcndyaXRlOiB0cnVlYCB0byBvdmVyd3JpdGUgdGhlIHByZXZpb3VzIGJyZWFrcG9pbnQuXCI7XG4gICAgICAkQlJFQUtQT0lOVFM6ICRCUkVBS1BPSU5UUyAhZ2xvYmFsO1xuICAgIH1cbiAgICBAZWxzZSBpZiBub3QgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkbmFtZSkgb3IgJG92ZXJ3cml0ZSA9PSB0cnVlIHtcbiAgICAgICRCUkVBS1BPSU5UUzogbWFwLW1lcmdlKCRCUkVBS1BPSU5UUywgJG91dHB1dCkgIWdsb2JhbDtcbiAgICB9XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGdldC1icmVha3BvaW50KCRuYW1lOiBmYWxzZSkge1xuICBAaWYgJG5hbWUgPT0gZmFsc2Uge1xuICAgIEByZXR1cm4gJEJSRUFLUE9JTlRTO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJEJSRUFLUE9JTlRTLCAkbmFtZSk7XG4gIH1cbn1cbiIsIkBtaXhpbiBsZWdhY3ktc2V0dGluZ3Mtd2FybmluZyB7XG4gICRsZWdhY3lWYXJzOiAoXG4gICAgJ2RlZmF1bHQtbWVkaWEnOiAnZGVmYXVsdCBtZWRpYScsXG4gICAgJ2RlZmF1bHQtZmVhdHVyZSc6ICdkZWZhdWx0IGZlYXR1cmUnLFxuICAgICdmb3JjZS1tZWRpYS1hbGwnOiAnZm9yY2UgYWxsIG1lZGlhIHR5cGUnLFxuICAgICd0by1lbXMnOiAndG8gZW1zJyxcbiAgICAncmVzb2x1dGlvbnMnOiAndHJhbnNmb3JtIHJlc29sdXRpb25zJyxcbiAgICAnbm8tcXVlcmllcyc6ICdubyBxdWVyaWVzJyxcbiAgICAnbm8tcXVlcnktZmFsbGJhY2tzJzogJ25vIHF1ZXJ5IGZhbGxiYWNrcycsXG4gICAgJ2Jhc2UtZm9udC1zaXplJzogJ2Jhc2UgZm9udCBzaXplJyxcbiAgICAnbGVnYWN5LXN5bnRheCc6ICdsZWdhY3kgc3ludGF4J1xuICApO1xuXG4gIEBlYWNoICRsZWdhY3ksICRuZXcgaW4gJGxlZ2FjeVZhcnMge1xuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LScgKyAkbGVnYWN5KSB7XG4gICAgICBAd2FybiBcIkluIG9yZGVyIHRvIGF2b2lkIHZhcmlhYmxlIG5hbXNwYWNlIGNvbGxpc2lvbnMsIHdlIGhhdmUgdXBkYXRlZCB0aGUgd2F5IHRvIGNoYW5nZSBzZXR0aW5ncyBmb3IgQnJlYWtwb2ludC4gUGxlYXNlIGNoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIGAkYnJlYWtwb2ludC0jeyRsZWdhY3l9OiB7e3NldHRpbmd9fWAgdG8gYEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCcjeyRuZXd9Jywge3tzZXR0aW5nfX0pYC4gVmFyaWFibGUgc2V0dGluZ3MsIGFzIHdlbGwgYXMgdGhpcyB3YXJuaW5nIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlwiXG4gICAgfVxuICB9O1xuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBIYW5kIGNvcnJlY3QgZWFjaCBzZXR0aW5nXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhJykgYW5kICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEgIT0gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2RlZmF1bHQgbWVkaWEnLCAkYnJlYWtwb2ludC1kZWZhdWx0LW1lZGlhKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUnKSBhbmQgJGJyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlICE9IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IGZlYXR1cmUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2RlZmF1bHQgZmVhdHVyZScsICRicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsJykgYW5kICRicmVha3BvaW50LWZvcmNlLW1lZGlhLWFsbCAhPSBicmVha3BvaW50LWdldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJywgJGJyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC10by1lbXMnKSBhbmQgJGJyZWFrcG9pbnQtdG8tZW1zICE9IGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ3RvIGVtcycsICRicmVha3BvaW50LXRvLWVtcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtcmVzb2x1dGlvbnMnKSBhbmQgJGJyZWFrcG9pbnQtcmVzb2x1dGlvbnMgIT0gYnJlYWtwb2ludC1nZXQoJ3RyYW5zZm9ybSByZXNvbHV0aW9ucycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJywgJGJyZWFrcG9pbnQtcmVzb2x1dGlvbnMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LW5vLXF1ZXJpZXMnKSBhbmQgJGJyZWFrcG9pbnQtbm8tcXVlcmllcyAhPSBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbm8gcXVlcmllcycsICRicmVha3BvaW50LW5vLXF1ZXJpZXMpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcycpIGFuZCAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MgIT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbm8gcXVlcnkgZmFsbGJhY2tzJywgJGJyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZScpIGFuZCAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSAhPSBicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJ2Jhc2UgZm9udCBzaXplJywgJGJyZWFrcG9pbnQtYmFzZS1mb250LXNpemUpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWxlZ2FjeS1zeW50YXgnKSBhbmQgJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCAhPSBicmVha3BvaW50LWdldCgnbGVnYWN5IHN5bnRheCcpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnbGVnYWN5IHN5bnRheCcsICRicmVha3BvaW50LWxlZ2FjeS1zeW50YXgpO1xuICB9XG59IiwiQGltcG9ydCAnLi4vYnJlYWtwb2ludCc7XHJcbiRsZzQgOiBtYXgtd2lkdGggIDEyNjBweDtcclxuJGxnMyA6IG1heC13aWR0aCAgMTQwMHB4O1xyXG4kbGcyIDogbWF4LXdpZHRoICAxMDIzcHg7XHJcbiRsZzEgOiBtYXgtd2lkdGggIDk0MHB4O1xyXG4kbGcgOiBtYXgtd2lkdGggIDc2N3B4O1xyXG4kbGd4IDogbWF4LXdpZHRoIDcwMHB4O1xyXG4kbWcgOiBtYXgtd2lkdGggNjQwcHg7XHJcbiRtZCA6IG1heC13aWR0aCA0ODBweDtcclxuJHNtIDogbWF4LXdpZHRoIDM2MHB4O1xyXG4keHMgOiBtYXgtd2lkdGggMzIwcHg7XHJcblxyXG4kY29yX2JsdWU6IzMxNDM2YjtcclxuJGNvcl9ibHVlMjojNjM3ZmQyO1xyXG4kY29yX3Bpbms6I2YwNTI5MTtcclxuJGNvcl9ncmF5OiM1ZDVkNWQ7XHJcbiRjb3JfZGFya2dyYXk6IzMzMztcclxuJG1sOjIwcHg7XHJcblxyXG5he3BhZGRpbmc6MDt9XHJcbiAuam9obm55LXV0YWgge1xyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxneCkge1xyXG4gICAgY29udGVudDogJ1dob2EuJztcclxuICB9XHJcbiAgXHJcbn1cclxuQG1peGluIGVsbHtcclxuIG92ZXJmbG93OmhpZGRlbjtcclxuIHdoaXRlLXNwYWNlOm5vd3JhcDtcclxuIHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7XHJcbiBkaXNwbGF5OmJsb2NrO1xyXG59XHJcbkBtaXhpbiBjbGVhcmZpeCB7IGRpc3BsYXk6IGJsb2NrOyBcclxuXHQmOmJlZm9yZSwmOmFmdGVyeyBjb250ZW50OiBcIi5cIjsgZGlzcGxheTogYmxvY2s7IGhlaWdodDogMDsgY2xlYXI6IGJvdGg7IHZpc2liaWxpdHk6IGhpZGRlbjsgfVxyXG59XHJcblxyXG4uY2xlYXItbGcye2NsZWFyOmJvdGg7XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcxKSB7Y2xlYXI6bm9uZX1cclxufVxyXG4uY2xlYXItbGcxe1xyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMikge2NsZWFyOm5vbmV9XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCgkbGcxKSB7Y2xlYXI6Ym90aH1cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRsZ3gpIHtjbGVhcjpub25lfVxyXG59XHJcbi5sZzJ7ZGlzcGxheTpibG9jaztcclxuXHRAaW5jbHVkZSBicmVha3BvaW50KCRsZzEpIHtcclxuXHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0fVxyXG59XHJcbi5sZzF7ZGlzcGxheTpub25lO1xyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnMSkge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0fVxyXG59Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QW9CbUJBLEFBQUEsQ0FBQyxDQUFBLEVBQUMsT0FBTyxFQUFDLENBQUMsR0FBSTs7QW5CNkNYLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSyxJbUI1QzVCLEFBQUEsWUFBWSxDQUFDLEVBRVYsT0FBTyxFQUFFLE9BQU8sR0FHbkI7O0FBV0QsQUFBQSxVQUFVLENBQUEsRUFBQyxLQUFLLEVBQUMsSUFBSSxHQUVwQjs7QW5CMEJHLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSyxJbUI1QjdCLEFBQUEsVUFBVSxDQUFBLEVBQ2tCLEtBQUssRUFBQyxJQUFJLEdBQ3JDOztBbkIwQkcsTUFBTSxFQUFHLFNBQVMsRUFBRSxNQUFNLEltQnpCOUIsQUFBQSxVQUFVLENBQUEsRUFDa0IsS0FBSyxFQUFDLElBQUksR0FHckM7O0FuQnFCRyxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUssSW1CekI3QixBQUFBLFVBQVUsQ0FBQSxFQUVrQixLQUFLLEVBQUMsSUFBSSxHQUVyQzs7QW5CcUJHLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSyxJbUJ6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 */
