{"product_id":"secadora-de-cabello","title":"Secadora De Cabello","description":"\u003cmeta charset=\"UTF-8\"\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-aboutThisItem-atf_feature_div\"\u003e\n\u003cdiv cel_widget_id=\"dpx-anywhere-aboutThisItem-atf_csm_instrumentation_wrapper\" class=\"celwidget\" data-csa-c-id=\"g1at5c-yj2ziz-fgqr46-yn4p7x\" data-cel-widget=\"dpx-anywhere-aboutThisItem-atf_csm_instrumentation_wrapper\"\u003e\n\u003cdiv id=\"aboutThisItem_atf_feature_div\" data-feature-name=\"aboutThisItem_atf\" data-template-name=\"aboutThisItem_atf\" class=\"a-section a-spacing-none celwidget\" data-csa-c-id=\"3au256-grir0i-yssveo-9bhgk2\" data-cel-widget=\"aboutThisItem_atf_feature_div\"\u003e\n\u003cdiv id=\"featureBulletsAndDescription_feature_div\" data-feature-name=\"\" data-template-name=\"\" class=\"a-section a-spacing-none\"\u003e\n\u003cdiv id=\"featurebullets_feature_div\" class=\"a-section\"\u003e\n\u003cdiv id=\"feature-bullets\" class=\"a-section a-spacing-small\"\u003e\n\u003cul class=\"a-unordered-list a-vertical a-spacing-none\"\u003e\n\u003cli\u003e\u003cspan class=\"a-list-item\"\u003eLa potencia de este aparato puede variar dependiendo de la ubicación de uso.\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan class=\"a-list-item\"\u003eDiseño ultraligero para un fácil peinado y flexibilidad\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan class=\"a-list-item\"\u003eTecnología iónica para control del encrespamiento\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan class=\"a-list-item\"\u003e3 ajustes de calor\/velocidad para un secado completo y flexibilidad de peinado\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan class=\"a-list-item\"\u003eEl botón de disparo frío libera aire frío para bloquear el estilo, también incluye accesorio concentrador\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-customer-reviews-attribute_feature_div\"\u003e\n\u003cdiv cel_widget_id=\"dpx-anywhere-customer-reviews-attribute_csm_instrumentation_wrapper\" class=\"celwidget\" data-csa-c-id=\"w4xtn8-emw73u-fz7f9o-jo5prz\" data-cel-widget=\"dpx-anywhere-customer-reviews-attribute_csm_instrumentation_wrapper\"\u003e\n\u003cdiv id=\"customerReviewsAttribute_feature_div\" data-feature-name=\"customerReviewsAttribute\" data-template-name=\"customerReviewsAttribute\" class=\"a-section a-spacing-none celwidget t-prnt t-full\" data-csa-c-id=\"1so7k6-94z58l-3avs7t-nfvhpk\" data-cel-widget=\"customerReviewsAttribute_feature_div\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-product-dimensions_feature_div\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-persistent-widget_feature_div\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-buyOnAlexa_feature_div\"\u003e\n\u003cdiv cel_widget_id=\"dpx-anywhere-buyOnAlexa_csm_instrumentation_wrapper\" class=\"celwidget\" data-csa-c-id=\"rtuk1a-99ozv-o843zu-pyrl4y\" data-cel-widget=\"dpx-anywhere-buyOnAlexa_csm_instrumentation_wrapper\"\u003e\n\u003cdiv id=\"buyOnAlexa_feature_div\" data-feature-name=\"buyOnAlexa\" data-template-name=\"buyOnAlexa\" class=\"a-section a-spacing-none celwidget t-prnt t-full\" data-csa-c-id=\"fderbu-3gq7v4-t8rvrj-laufzp\" data-cel-widget=\"buyOnAlexa_feature_div\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-promotions_feature_div\"\u003e\n\u003cdiv cel_widget_id=\"dpx-anywhere-promotions_csm_instrumentation_wrapper\" class=\"celwidget\" data-csa-c-id=\"xn4ti-ungxw5-sal51m-cmosjx\" data-cel-widget=\"dpx-anywhere-promotions_csm_instrumentation_wrapper\"\u003e\n\u003cdiv id=\"promotions_feature_div\" data-feature-name=\"promotions\" data-template-name=\"promotions\" class=\"a-section a-spacing-none celwidget t-prnt t-full\" data-csa-c-id=\"3wlv73-yuic15-ayqqiv-akkl17\" data-cel-widget=\"promotions_feature_div\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-device-restriction-v2-widget_feature_div\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-ebooks-background-image_feature_div\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-kcp-app_feature_div\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-more-about-the-author-mobile-card_feature_div\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-security-guarantee_feature_div\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-size-guide_feature_div\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-returnable_feature_div\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-social-fabric_feature_div\"\u003e\n\u003cdiv cel_widget_id=\"dpx-anywhere-social-fabric_csm_instrumentation_wrapper\" class=\"celwidget\" data-csa-c-id=\"6g2xp3-xmwxl6-snxecs-3nebb4\" data-cel-widget=\"dpx-anywhere-social-fabric_csm_instrumentation_wrapper\"\u003e\n\u003cdiv id=\"socialFabric_feature_div\" data-feature-name=\"socialFabric\" data-template-name=\"socialFabric\" class=\"a-section a-spacing-none celwidget t-prnt t-full\" data-csa-c-id=\"it68e7-m17bjj-5d2oil-u8opkt\" data-cel-widget=\"socialFabric_feature_div\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-visual-search_feature_div\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"t-full t-prnt\" id=\"dpx-anywhere-recommendations_feature_div\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"aw-campaigns\"\u003e\n\u003cdiv id=\"mobile-ads-top_feature_div\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aw-campaigns\"\u003e\n\u003cdiv id=\"productAlert_feature_div\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aw-campaigns\"\u003e\n\u003cdiv id=\"heroQuickPromo_feature_div\"\u003e\n\u003cdiv id=\"ape_detail_mobile-hero-quick-promo_mweb_aui_cardDeck\" class=\"a-cardui-deck dp-widget-card-deck\" data-a-remove-bottom-gutter=\"\" name=\"a-cardui-deck-autoname-3\"\u003e\n\u003cdiv id=\"ape_detail_mobile-hero-quick-promo_mweb_aui_card\" class=\"a-cardui\" data-a-card-type=\"basic\" name=\"a-cardui-deck-autoname-3-card0\"\u003e\n\u003cdiv class=\"a-cardui-body\"\u003e\n\u003cdiv id=\"ape_detail_mobile-hero-quick-promo_mweb_wrapper\" class=\"celwidget  text\/x-dacx-safeframe\" cel_widget_id=\"adplacements:detail:mobile-hero-quick-promo:mweb\" data-csa-c-type=\"widget\" data-csa-c-slot-id=\"adplacements:detail:mobile-hero-quick-promo:mweb\" data-csa-c-content-id=\"daa05fc2-bd04-4d0e-b4e4-e3442cefc602\" data-ad-details='{\"slot\" :\"detail_mobile-hero-quick-promo_mweb\",\"pageType\": \"detail\",\"subPageType\":  \"mweb\",\"slotName\" :\"mobile-hero-quick-promo\",\"src\" : \"prefetchEnabled\",\"adServer\" :\"cs\",\"campaignId\" :  \"13263\",\"arid\" :\"95c4c2dae5bd4d3e9036fdae6be8acb5\", \"placementId\" : \"daa05fc2-bd04-4d0e-b4e4-e3442cefc602\",\"adCreativeMetaData\" :  {\"adProgramId\": \"1024\",\"adImpressionId\": \"https:\/\/aax-us-iad.amazon.com\/e\/xsp\/imp?b=QpetLhaS8kU6hWjDMcOaJagAAAF9AiHv3AEAAAGQAfJh97Y\",\"adCreativeId\": \"2091012542\",\"adId\": \"200035390848281\",\"adNetwork\": \"cs\"},\"adPlacementMetaData\": {\"pageUrl\": \"aHR0cHM6Ly93d3cuYW1hem9uLmNvbS9ncC9hdy9kL0IwMDBGUzFXNFU\/cmVmJTVGPW5vZGwlNUYmbGFuZ3VhZ2U9ZXM=\",\"adElementId\": \"ape_detail_mobile-hero-quick-promo_mweb_placement\",\"pageType\": \"detail\",\"slotName\": \"mobile-hero-quick-promo\"},\"size\" :{\"width\" : \"100%\",\"height\" : \"125px\"},\"maxAdWidth\":   \"\",\"allowedSizes\" :[{\"width\":\"414px\",\"height\":\"125px\"}, {\"width\":\"100%\",\"height\":\"125px\"}],\"allowChangeSize\" : true,\"allowedDomains\" :  [\"g-ecx.images-amazon.com\", \"images-na.ssl-images-amazon.com\"],\"allowedCookies\" :  [\"amzn-app-ctxt\"],\"loadAfter\" :   \"immediate\",\"extraDelay\" :  0,\"iframeExtraStyle\": \"width: 1px; min-width: 100%;\",\"iframeClass\":  \"\",\"isCardsFlow\": false,\"enablePrerenderLogic\": false,\"adLabelWrapperId\":  \"ape_detail_mobile-hero-quick-promo_mweb_text-wrapper\",\"adLabelId\": \"ape_detail_mobile-hero-quick-promo_mweb_text\",\"advTextWrapperDivStyle\": \"position:relative; text-align:center; margin-left: -14px; margin-right: -13px; height: auto;\",\"feedbackDivStyle\": {\"position\": \"relative\",\"height\": \"14px\",\"top\": \"-10px\",\"text-align\": \"right\"},\"advertisementStyle\": {\"position\": \"absolute\",\"top\": \"10px\",\"right\": \"0px\",\"display\": \"inline-block\",\"font\": \"normal 11px Arial\",\"color\": \"grey\"},\"adFeedbackInfo\":{\"adProgramId\": \"1024\", \"endPoint\": \"\/af\/feedback-link\",\"boolFeedback\": true,\"slugText\": \"Patrocinado\",\"adFeedbackOnTop\":false},\"advertisementTextStyle\": \"font-size: 11px; color: #555; text-align: right; margin: 1px 3px 6px 0;\",\"advertisementTextHTMLContentEncoded\": \"PGRpdiBpZD0iYXBlX2RldGFpbF9tb2JpbGUtaGVyby1xdWljay1wcm9tb19td2ViX3RleHQtd3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWxlZnQ6IC0xNHB4OyBtYXJnaW4tcmlnaHQ6IC0xM3B4OyBoZWlnaHQ6IGF1dG87IiAgPjxkaXYgaWQ9ImFwZV9kZXRhaWxfbW9iaWxlLWhlcm8tcXVpY2stcHJvbW9fbXdlYl90ZXh0IiBzdHlsZT0iZm9udC1zaXplOiAxMXB4OyBjb2xvcjogIzU1NTsgdGV4dC1hbGlnbjogcmlnaHQ7IG1hcmdpbjogMXB4IDNweCA2cHggMDsiICA+UGF0cm9jaW5hZG88L2Rpdj48L2Rpdj4=\",\"adPixels\": [],\"aaxImpPixelUrl\":  \"https:\/\/aax-us-iad.amazon.com\/e\/xsp\/imp?b=QpetLhaS8kU6hWjDMcOaJagAAAF9AiHv3AEAAAGQAfJh97Y\",\"aaxInstrPixelUrl\":  \"https:\/\/aax-us-iad.amazon.com\/x\/px\/QpetLhaS8kU6hWjDMcOaJagAAAF9AiHv3AEAAAGQAfJh97Y\/\",\"htmlContentEncoded\": \"PGRpdiBjZWxfd2lkZ2V0X2lkPSdzcF9ocXBfcGhvbmVfc2hhcmVkJyBjbGFzcz0nY2Vsd2lkZ2V0Jz4gPHNjcmlwdD4gKGZ1bmN0aW9uKGYsaCxRLEUpe2Z1bmN0aW9uIEYoYSl7dSYmdS50YWcmJnUudGFnKHEoIjoiLCJhdWkiLGEpKX1mdW5jdGlvbiB2KGEsYil7dSYmdS5jb3VudCYmdS5jb3VudCgiYXVpOiIrYSwwPT09Yj8wOmJ8fCh1LmNvdW50KCJhdWk6IithKXx8MCkrMSl9ZnVuY3Rpb24gbShhKXt0cnl7cmV0dXJuIGEudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KX1jYXRjaChiKXtyZXR1cm4hMX19ZnVuY3Rpb24geChhLGIsYyl7YS5hZGRFdmVudExpc3RlbmVyP2EuYWRkRXZlbnRMaXN0ZW5lcihiLGMsITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9uIitiLGMpfWZ1bmN0aW9uIHEoYSxiLGMsZSl7Yj1iJiZjP2IrYStjOmJ8fGM7cmV0dXJuIGU\/cShhLGIsZSk6Yn1mdW5jdGlvbiBHKGEsYixjKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7dmFsdWU6Yyx3cml0YWJsZTohMX0pfWNhdGNoKGUpe2FbYl09Y31yZXR1cm4gY31mdW5jdGlvbiB1YShhLGIsYyl7dmFyIGU9IGM9YS5sZW5ndGgsZz1mdW5jdGlvbigpe2UtLXx8KFIucHVzaChiKSxTfHwoc2V0VGltZW91dChjYSwwKSxTPSEwKSl9O2ZvcihnKCk7Yy0tOylkYVthW2NdXT9nKCk6KHpbYVtjXV09elthW2NdXXx8W10pLnB1c2goZyl9ZnVuY3Rpb24gdmEoYSxiLGMsZSxnKXt2YXIgZD1oLmNyZWF0ZUVsZW1lbnQoYT8ic2NyaXB0IjoibGluayIpO3goZCwiZXJyb3IiLGUpO2cmJngoZCwibG9hZCIsZyk7YT8oZC50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLGQuYXN5bmM9ITAsYyYmL0FVSUNsaWVudHN8aW1hZ2VzWy9dSS8udGVzdChiKSYmZC5zZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIiwiYW5vbnltb3VzIiksZC5zcmM9Yik6KGQucmVsPSJzdHlsZXNoZWV0IixkLmhyZWY9Yik7aC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGQpfWZ1bmN0aW9uIGVhKGEsYil7cmV0dXJuIGZ1bmN0aW9uKGMsZSl7ZnVuY3Rpb24gZygpe3ZhKGIsYyxkLGZ1bmN0aW9uKGIpe1Q\/digicmVzb3VyY2VfdW5sb2FkIik6IGQ\/KGQ9ITEsdigicmVzb3VyY2VfcmV0cnkiKSxnKCkpOih2KCJyZXNvdXJjZV9lcnJvciIpLGEubG9nKCJBc3NldCBmYWlsZWQgdG8gbG9hZDogIitjKSk7YiYmYi5zdG9wUHJvcGFnYXRpb24\/Yi5zdG9wUHJvcGFnYXRpb24oKTpmLmV2ZW50JiYoZi5ldmVudC5jYW5jZWxCdWJibGU9ITApfSxlKX1pZihmYVtjXSlyZXR1cm4hMTtmYVtjXT0hMDt2KCJyZXNvdXJjZV9jb3VudCIpO3ZhciBkPSEwO3JldHVybiFnKCl9fWZ1bmN0aW9uIHdhKGEsYixjKXtmb3IodmFyIGU9e25hbWU6YSxndWFyZDpmdW5jdGlvbihjKXtyZXR1cm4gYi5ndWFyZEZhdGFsKGEsYyl9LGd1YXJkVGltZTpmdW5jdGlvbihhKXtyZXR1cm4gYi5ndWFyZFRpbWUoYSl9LGxvZ0Vycm9yOmZ1bmN0aW9uKGMsZCxlKXtiLmxvZ0Vycm9yKGMsZCxlLGEpfX0sZz1bXSxkPTA7ZDxjLmxlbmd0aDtkKyspSC5oYXNPd25Qcm9wZXJ0eShjW2RdKSYmKGdbZF09VS5oYXNPd25Qcm9wZXJ0eShjW2RdKT9VW2NbZF1dKEhbY1tkXV0sIGUpOkhbY1tkXV0pO3JldHVybiBnfWZ1bmN0aW9uIEEoYSxiLGMsZSxnKXtyZXR1cm4gZnVuY3Rpb24oZCxoKXtmdW5jdGlvbiBuKCl7dmFyIGE9bnVsbDtlP2E9aDoiZnVuY3Rpb24iPT09dHlwZW9mIGgmJihwLnN0YXJ0PXcoKSxhPWguYXBwbHkoZix3YShkLGssbCkpLHAuZW5kPXcoKSk7aWYoYil7SFtkXT1hO2E9ZDtmb3IoZGFbYV09ITA7KHpbYV18fFtdKS5sZW5ndGg7KXpbYV0uc2hpZnQoKSgpO2RlbGV0ZSB6W2FdfXAuZG9uZT0hMH12YXIgaz1nfHx0aGlzOyJmdW5jdGlvbiI9PT10eXBlb2YgZCYmKGg9ZCxkPUUpO2ImJihkPWQ\/ZC5yZXBsYWNlKGhhLCIiKToiX19OT05BTUVfXyIsVi5oYXNPd25Qcm9wZXJ0eShkKSYmay5lcnJvcihxKCIsIHJlcmVnaXN0ZXJlZCBieSAiLHEoIiBieSAiLGQrIiBhbHJlYWR5IHJlZ2lzdGVyZWQiLFZbZF0pLGsuYXR0cmlidXRpb24pLGQpLFZbZF09ay5hdHRyaWJ1dGlvbik7Zm9yKHZhciBsPVtdLG09MDttPGEubGVuZ3RoO20rKylsW21dPSBhW21dLnJlcGxhY2UoaGEsIiIpO3ZhciBwPUJbZHx8ImFub24iKyArK3hhXT17ZGVwZW5kOmwscmVnaXN0ZXJlZDp3KCksbmFtZXNwYWNlOmsubmFtZXNwYWNlfTtkJiZ5YS5oYXNPd25Qcm9wZXJ0eShkKTtjP24oKTp1YShsLGsuZ3VhcmRGYXRhbChkLG4pLGQpO3JldHVybntkZWNvcmF0ZTpmdW5jdGlvbihhKXtVW2RdPWsuZ3VhcmRGYXRhbChkLGEpfX19fWZ1bmN0aW9uIGlhKGEpe3JldHVybiBmdW5jdGlvbigpe3ZhciBiPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJue2V4ZWN1dGU6QShiLCExLGEsITEsdGhpcykscmVnaXN0ZXI6QShiLCEwLGEsITEsdGhpcyl9fX1mdW5jdGlvbiBXKGEsYil7cmV0dXJuIGZ1bmN0aW9uKGMsZSl7ZXx8KGU9YyxjPUUpO3ZhciBnPXRoaXMuYXR0cmlidXRpb247cmV0dXJuIGZ1bmN0aW9uKCl7dC5wdXNoKGJ8fHthdHRyaWJ1dGlvbjpnLG5hbWU6Yyxsb2dMZXZlbDphfSk7dmFyIGQ9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7IHQucG9wKCk7cmV0dXJuIGR9fX1mdW5jdGlvbiBJKGEsYil7dGhpcy5sb2FkPXtqczplYSh0aGlzLCEwKSxjc3M6ZWEodGhpcyl9O0codGhpcywibmFtZXNwYWNlIixiKTtHKHRoaXMsImF0dHJpYnV0aW9uIixhKX1mdW5jdGlvbiBqYSgpe2guYm9keT9yLnRyaWdnZXIoImEtYm9keUJlZ2luIik6c2V0VGltZW91dChqYSwyMCl9ZnVuY3Rpb24gQyhhLGIpe2EuY2xhc3NOYW1lPVgoYSxiKSsiICIrYn1mdW5jdGlvbiBYKGEsYil7cmV0dXJuKCIgIithLmNsYXNzTmFtZSsiICIpLnNwbGl0KCIgIitiKyIgIikuam9pbigiICIpLnJlcGxhY2UoL14gfCAkL2csIiIpfWZ1bmN0aW9uIGthKGEpe3RyeXtyZXR1cm4gYSgpfWNhdGNoKGIpe3JldHVybiExfX1mdW5jdGlvbiBKKCl7aWYoSyl7dmFyIGE9e3c6Zi5pbm5lcldpZHRofHxuLmNsaWVudFdpZHRoLGg6Zi5pbm5lckhlaWdodHx8bi5jbGllbnRIZWlnaHR9OzU8TWF0aC5hYnMoYS53LVkudyl8fDUwPGEuaC1ZLmg\/KFk9YSxMPTQsKGE9ay5tb2JpbGV8fCBrLnRhYmxldD80NTA8YS53JiZhLnc+YS5oOjEyNTA8PWEudyk\/QyhuLCJhLXdzIik6bi5jbGFzc05hbWU9WChuLCJhLXdzIikpOjA8TCYmKEwtLSxsYT1zZXRUaW1lb3V0KEosMTYpKX19ZnVuY3Rpb24gemEoYSl7KEs9YT09PUU\/IUs6ISFhKSYmSigpfWZ1bmN0aW9uIEFhKCl7cmV0dXJuIEt9ZnVuY3Rpb24gbWEoKXtELmZvckVhY2goZnVuY3Rpb24oYSl7RihhKX0pfWZ1bmN0aW9uIG5hKGEsYixjKXtpZihiKXthPW0oL0Nocm9tZS9pKSYmIW0oL0VkZ2UvaSkmJiFtKC9PUFIvaSkmJiFhLmNhcGFiaWxpdGllcy5pc0FtYXpvbkFwcCYmIW0obmV3IFJlZ0V4cChaKyJid3YiK1orImIiKSk7dmFyIGU9InN3OmJyb3dzZXI6IitjKyI6IjtiLmJyb3dzZXImJmEmJihELnB1c2goZSsic3VwcG9ydGVkIiksYi5icm93c2VyLmFjdGlvbihlLGMpKTshYSYmYi5icm93c2VyJiZELnB1c2goZSsidW5zdXBwb3J0ZWQiKX19InVzZSBzdHJpY3QiO3ZhciBNPVEubm93PVEubm93fHxmdW5jdGlvbigpe3JldHVybituZXcgUX0sIHc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEubm93P2Eubm93LmJpbmQoYSk6TX0oZi5wZXJmb3JtYW5jZSksTj13KCkseWE9e30scD1mLkFtYXpvblVJUGFnZUpTfHxmLlA7aWYocCYmcC53aGVuJiZwLnJlZ2lzdGVyKXtOPVtdO2Zvcih2YXIgbD1oLmN1cnJlbnRTY3JpcHQ7bDtsPWwucGFyZW50RWxlbWVudClsLmlkJiZOLnB1c2gobC5pZCk7cmV0dXJuIHAubG9nKCJBIGNvcHkgb2YgUCBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZCBvbiB0aGlzIHBhZ2UuIiwiRkFUQUwiLE4uam9pbigiICIpKX12YXIgdT1mLnVlO0YoKTtGKCJhdWlfYnVpbGRfZGF0ZTozLjIxLjctMjAyMS0xMC0yNSIpO3ZhciBSPVtdLEJhPVtdLFM9ITE7dmFyIGNhPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPXNldFRpbWVvdXQoY2EsMCksYj1NKCk7QmEubGVuZ3RofHxSLmxlbmd0aDspaWYoUi5zaGlmdCgpKCksNTA8TSgpLWIpcmV0dXJuO2NsZWFyVGltZW91dChhKTtTPSExfTt2YXIgZGE9e30sej17fSxmYT17fSxUPSAhMTt4KGYsImJlZm9yZXVubG9hZCIsZnVuY3Rpb24oKXtUPSEwO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtUPSExfSwxRTQpfSk7dmFyIGhhPS9ecHJ2Oi8sVj17fSxIPXt9LFU9e30sQj17fSx4YT0wLFo9U3RyaW5nLmZyb21DaGFyQ29kZSg5MiksdD1bXSxvYT0hMCxwYT1mLm9uZXJyb3I7Zi5vbmVycm9yPWZ1bmN0aW9uKGEsYixjLGUsZyl7ZyYmIm9iamVjdCI9PT10eXBlb2YgZ3x8KGc9RXJyb3IoYSxiLGMpLGcuY29sdW1uTnVtYmVyPWUsZy5zdGFjaz1ifHxjfHxlP3EoWixnLm1lc3NhZ2UsImF0ICIrcSgiOiIsYixjLGUpKTpFKTt2YXIgZD10LnBvcCgpfHx7fTtnLmF0dHJpYnV0aW9uPXEoIjoiLGcuYXR0cmlidXRpb258fGQuYXR0cmlidXRpb24sZC5uYW1lKTtnLmxvZ0xldmVsPWQubG9nTGV2ZWw7Zy5hdHRyaWJ1dGlvbiYmY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKFtnLmxvZ0xldmVsfHwiRVJST1IiLGEsInRocm93biBieSIsZy5hdHRyaWJ1dGlvbl0uam9pbigiICIpKTsgdD1bXTtwYSYmKGQ9W10uc2xpY2UuY2FsbChhcmd1bWVudHMpLGRbNF09ZyxwYS5hcHBseShmLGQpKX07SS5wcm90b3R5cGU9e2xvZ0Vycm9yOmZ1bmN0aW9uKGEsYixjLGUpe2I9e21lc3NhZ2U6Yixsb2dMZXZlbDpjfHwiRVJST1IiLGF0dHJpYnV0aW9uOnEoIjoiLHRoaXMuYXR0cmlidXRpb24sZSl9O2lmKGYudWVMb2dFcnJvcilyZXR1cm4gZi51ZUxvZ0Vycm9yKGF8fGIsYT9iOm51bGwpLCEwO2NvbnNvbGUmJmNvbnNvbGUuZXJyb3ImJihjb25zb2xlLmxvZyhiKSxjb25zb2xlLmVycm9yKGEpKTtyZXR1cm4hMX0sZXJyb3I6ZnVuY3Rpb24oYSxiLGMsZSl7YT1FcnJvcihxKCI6IixlLGEsYykpO2EuYXR0cmlidXRpb249cSgiOiIsdGhpcy5hdHRyaWJ1dGlvbixiKTt0aHJvdyBhO30sZ3VhcmRFcnJvcjpXKCksZ3VhcmRGYXRhbDpXKCJGQVRBTCIpLGd1YXJkQ3VycmVudDpmdW5jdGlvbihhKXt2YXIgYj10W3QubGVuZ3RoLTFdO3JldHVybiBiP1coYi5sb2dMZXZlbCxiKS5jYWxsKHRoaXMsIGEpOmF9LGd1YXJkVGltZTpmdW5jdGlvbihhKXt2YXIgYj10W3QubGVuZ3RoLTFdLGM9YiYmYi5uYW1lO3JldHVybiBjJiZjIGluIEI\/ZnVuY3Rpb24oKXt2YXIgYj13KCksZz1hLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtCW2NdLmFzeW5jPShCW2NdLmFzeW5jfHwwKSt3KCktYjtyZXR1cm4gZ306YX0sbG9nOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5sb2dFcnJvcihudWxsLGEsYixjKX0sZGVjbGFyZTpBKFtdLCEwLCEwLCEwKSxyZWdpc3RlcjpBKFtdLCEwKSxleGVjdXRlOkEoW10pLEFVSV9CVUlMRF9EQVRFOiIzLjIxLjctMjAyMS0xMC0yNSIsd2hlbjppYSgpLG5vdzppYSghMCksdHJpZ2dlcjpmdW5jdGlvbihhLGIsYyl7dmFyIGU9TSgpO3RoaXMuZGVjbGFyZShhLHtkYXRhOmIscGFnZUVsYXBzZWRUaW1lOmUtKGYuYVBhZ2VTdGFydHx8TmFOKSx0cmlnZ2VyVGltZTplfSk7YyYmYy5pbnN0cnVtZW50JiZPLndoZW4oInBydjphLWxvZ1RyaWdnZXIiKS5leGVjdXRlKGZ1bmN0aW9uKGIpe2IoYSl9KX0sIGhhbmRsZVRyaWdnZXJzOmZ1bmN0aW9uKCl7dGhpcy5sb2coImhhbmRsZVRyaWdnZXJzIGRlcHJlY2F0ZWQiKX0sYXR0cmlidXRlRXJyb3JzOmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgSShhKX0sX25hbWVzcGFjZTpmdW5jdGlvbihhLGIpe3JldHVybiBuZXcgSShhLGIpfSxzZXRQcmlvcml0eTpmdW5jdGlvbihhKXtvYT9vYT0hMTp0aGlzLmxvZygic2V0UHJpb3JpdHkgb25seSBhY2NlcHQgdGhlIGZpcnN0IGNhbGwuIil9fTt2YXIgcj1HKGYsIkFtYXpvblVJUGFnZUpTIixuZXcgSSk7dmFyIE89ci5fbmFtZXNwYWNlKCJQYWdlSlMiLCJBbWF6b25VSSIpO08uZGVjbGFyZSgicHJ2OnAtZGVidWciLEIpO3IuZGVjbGFyZSgicC1yZWNvcmRlci1ldmVudHMiLFtdKTtyLmRlY2xhcmUoInAtcmVjb3JkZXItc3RvcCIsZnVuY3Rpb24oKXt9KTtHKGYsIlAiLHIpO2phKCk7aWYoaC5hZGRFdmVudExpc3RlbmVyKXt2YXIgcWE7aC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgcWE9ZnVuY3Rpb24oKXtyLnRyaWdnZXIoImEtZG9tcmVhZHkiKTtoLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLHFhLCExKX0sITEpfXZhciBuPWguZG9jdW1lbnRFbGVtZW50LGFhPWZ1bmN0aW9uKCl7dmFyIGE9WyJPIiwibXMiLCJNb3oiLCJXZWJraXQiXSxiPWguY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJue3Rlc3RHcmFkaWVudHM6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sdGVzdDpmdW5jdGlvbihjKXt2YXIgZT1jLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Muc3Vic3RyKDEpO2M9KGEuam9pbihlKyIgIikrZSsiICIrYykuc3BsaXQoIiAiKTtmb3IoZT1jLmxlbmd0aDtlLS07KWlmKCIiPT09Yi5zdHlsZVtjW2VdXSlyZXR1cm4hMDtyZXR1cm4hMX0sdGVzdFRyYW5zZm9ybTNkOmZ1bmN0aW9uKCl7cmV0dXJuITB9fX0oKTtwPW4uY2xhc3NOYW1lO3ZhciByYT0vKF58IClhLW1vYmlsZSggfCQpLy50ZXN0KHApLHNhPS8oXnwgKWEtdGFibGV0KCB8JCkvLnRlc3QocCksIGs9e2F1ZGlvOmZ1bmN0aW9uKCl7cmV0dXJuISFoLmNyZWF0ZUVsZW1lbnQoImF1ZGlvIikuY2FuUGxheVR5cGV9LHZpZGVvOmZ1bmN0aW9uKCl7cmV0dXJuISFoLmNyZWF0ZUVsZW1lbnQoInZpZGVvIikuY2FuUGxheVR5cGV9LGNhbnZhczpmdW5jdGlvbigpe3JldHVybiEhaC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0fSxzdmc6ZnVuY3Rpb24oKXtyZXR1cm4hIWguY3JlYXRlRWxlbWVudE5TJiYhIWguY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpLmNyZWF0ZVNWR1JlY3R9LG9mZmxpbmU6ZnVuY3Rpb24oKXtyZXR1cm4gbmF2aWdhdG9yLmhhc093blByb3BlcnR5JiZuYXZpZ2F0b3IuaGFzT3duUHJvcGVydHkoIm9uTGluZSIpJiZuYXZpZ2F0b3Iub25MaW5lfSxkcmFnRHJvcDpmdW5jdGlvbigpe3JldHVybiJkcmFnZ2FibGUiaW4gaC5jcmVhdGVFbGVtZW50KCJzcGFuIil9LGdlb2xvY2F0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuISFuYXZpZ2F0b3IuZ2VvbG9jYXRpb259LCBoaXN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuISghZi5oaXN0b3J5fHwhZi5oaXN0b3J5LnB1c2hTdGF0ZSl9LHdlYndvcmtlcjpmdW5jdGlvbigpe3JldHVybiEhZi5Xb3JrZXJ9LGF1dG9mb2N1czpmdW5jdGlvbigpe3JldHVybiJhdXRvZm9jdXMiaW4gaC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpfSxpbnB1dFBsYWNlaG9sZGVyOmZ1bmN0aW9uKCl7cmV0dXJuInBsYWNlaG9sZGVyImluIGguY3JlYXRlRWxlbWVudCgiaW5wdXQiKX0sdGV4dGFyZWFQbGFjZWhvbGRlcjpmdW5jdGlvbigpe3JldHVybiJwbGFjZWhvbGRlciJpbiBoLmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIil9LGxvY2FsU3RvcmFnZTpmdW5jdGlvbigpe3JldHVybiJsb2NhbFN0b3JhZ2UiaW4gZiYmbnVsbCE9PWYubG9jYWxTdG9yYWdlfSxvcmllbnRhdGlvbjpmdW5jdGlvbigpe3JldHVybiJvcmllbnRhdGlvbiJpbiBmfSx0b3VjaDpmdW5jdGlvbigpe3JldHVybiJvbnRvdWNoZW5kImluIGh9LGdyYWRpZW50czpmdW5jdGlvbigpe3JldHVybiBhYS50ZXN0R3JhZGllbnRzKCl9LCBoaXJlczpmdW5jdGlvbigpe3ZhciBhPWYuZGV2aWNlUGl4ZWxSYXRpbyYmMS41PD1mLmRldmljZVBpeGVsUmF0aW98fGYubWF0Y2hNZWRpYSYmZi5tYXRjaE1lZGlhKCIobWluLXJlc29sdXRpb246MTQ0ZHBpKSIpLm1hdGNoZXM7digiaGlSZXMiKyhyYT8iTW9iaWxlIjpzYT8iVGFibGV0IjoiRGVza3RvcCIpLGE\/MTowKTtyZXR1cm4gYX0sdHJhbnNmb3JtM2Q6ZnVuY3Rpb24oKXtyZXR1cm4gYWEudGVzdFRyYW5zZm9ybTNkKCl9LHRvdWNoU2Nyb2xsaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIG0oL1dpbmRvd3Nob3B8YW5kcm9pZHxPUyAoWzUtOV18WzEtOV1bMC05XSspKF9bMC05XXsxLDJ9KSsgbGlrZSBNYWMgT1MgWHxTT0ZUV0FSRT0oWzUtOV18WzEtOV1bMC05XSspKC5bMC05XXsxLDJ9KSsuKkRFVklDRT1pUGhvbmV8Q2hyb21lfFNpbGt8RmlyZWZveHxUcmlkZW50Lis\/OyBUb3VjaC9pKX0saW9zOmZ1bmN0aW9uKCl7cmV0dXJuIG0oL09TIFsxLTldWzAtOV0qKF9bMC05XSopKyBsaWtlIE1hYyBPUyBYL2kpJiYgIW0oL3RyaWRlbnR8RWRnZS9pKX0sYW5kcm9pZDpmdW5jdGlvbigpe3JldHVybiBtKC9hbmRyb2lkLihbMS05XXxbTC1aXSkvaSkmJiFtKC90cmlkZW50fEVkZ2UvaSl9LG1vYmlsZTpmdW5jdGlvbigpe3JldHVybiByYX0sdGFibGV0OmZ1bmN0aW9uKCl7cmV0dXJuIHNhfSxydGw6ZnVuY3Rpb24oKXtyZXR1cm4icnRsIj09PW4uZGlyfX07Zm9yKGwgaW4gaylrLmhhc093blByb3BlcnR5KGwpJiYoa1tsXT1rYShrW2xdKSk7Zm9yKHZhciBiYT0idGV4dFNoYWRvdyB0ZXh0U3Ryb2tlIGJveFNoYWRvdyBib3JkZXJSYWRpdXMgYm9yZGVySW1hZ2Ugb3BhY2l0eSB0cmFuc2Zvcm0gdHJhbnNpdGlvbiIuc3BsaXQoIiAiKSxQPTA7UDxiYS5sZW5ndGg7UCsrKWtbYmFbUF1dPWthKGZ1bmN0aW9uKCl7cmV0dXJuIGFhLnRlc3QoYmFbUF0pfSk7dmFyIEs9ITAsbGE9MCxZPXt3OjAsaDowfSxMPTQ7SigpO3goZiwicmVzaXplIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChsYSk7TD00O0ooKX0pOyB2YXIgdGE9e2dldEl0ZW06ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiBmLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGEpfWNhdGNoKGIpe319LHNldEl0ZW06ZnVuY3Rpb24oYSxiKXt0cnl7cmV0dXJuIGYubG9jYWxTdG9yYWdlLnNldEl0ZW0oYSxiKX1jYXRjaChjKXt9fX07bi5jbGFzc05hbWU9WChuLCJhLW5vLWpzIik7QyhuLCJhLWpzIik7IW0oL09TIFsxLThdKF9bMC05XSopKyBsaWtlIE1hYyBPUyBYL2kpfHxmLm5hdmlnYXRvci5zdGFuZGFsb25lfHxtKC9zYWZhcmkvaSl8fEMobiwiYS1lbWJlciIpO3A9W107Zm9yKGwgaW4gaylrLmhhc093blByb3BlcnR5KGwpJiZrW2xdJiZwLnB1c2goImEtIitsLnJlcGxhY2UoLyhbQS1aXSkvZyxmdW5jdGlvbihhKXtyZXR1cm4iLSIrYS50b0xvd2VyQ2FzZSgpfSkpO0MobixwLmpvaW4oIiAiKSk7bi5zZXRBdHRyaWJ1dGUoImRhdGEtYXVpLWJ1aWxkLWRhdGUiLCIzLjIxLjctMjAyMS0xMC0yNSIpO3IucmVnaXN0ZXIoInAtZGV0ZWN0IixmdW5jdGlvbigpe3JldHVybntjYXBhYmlsaXRpZXM6aywgbG9jYWxTdG9yYWdlOmsubG9jYWxTdG9yYWdlJiZ0YSx0b2dnbGVSZXNwb25zaXZlR3JpZDp6YSxyZXNwb25zaXZlR3JpZEVuYWJsZWQ6QWF9fSk7bSgvVUNCcm93c2VyL2kpfHxrLmxvY2FsU3RvcmFnZSYmQyhuLHRhLmdldEl0ZW0oImEtZm9udC1jbGFzcyIpKTtyLmRlY2xhcmUoImEtZXZlbnQtcmV2aXNlZC1oYW5kbGluZyIsITEpO3RyeXt2YXIgeT1uYXZpZ2F0b3Iuc2VydmljZVdvcmtlcn1jYXRjaChhKXtGKCJzdzpuYXZfZXJyIil9eSYmKHgoeSwibWVzc2FnZSIsZnVuY3Rpb24oYSl7YSYmYS5kYXRhJiZ2KGEuZGF0YS5rLGEuZGF0YS52KX0pLHkuY29udHJvbGxlciYmeS5jb250cm9sbGVyLnBvc3RNZXNzYWdlKCJNU0ctUkRZIikpO3ZhciBEPVtdOyhmdW5jdGlvbihhKXt2YXIgYj1hLnJlZyxjPWEudW5yZWc7eSYmeS5nZXRSZWdpc3RyYXRpb25zPyhPLndoZW4oIkEiKS5leGVjdXRlKGZ1bmN0aW9uKGEpe25hKGEsYywidW5yZWdpc3RlciIpfSkseChmLCJsb2FkIixmdW5jdGlvbigpe08ud2hlbigiQSIpLmV4ZWN1dGUoZnVuY3Rpb24oYSl7bmEoYSwgYiwicmVnaXN0ZXIiKTttYSgpfSl9KSk6KGImJmIuYnJvd3NlciYmRC5wdXNoKCJzdzpicm93c2VyOnJlZ2lzdGVyOnVuc3VwcG9ydGVkIiksYyYmYy5icm93c2VyJiZELnB1c2goInN3OmJyb3dzZXI6dW5yZWdpc3Rlcjp1bnN1cHBvcnRlZCIpLG1hKCkpfSkoe3JlZzp7fSx1bnJlZzp7fX0pO3IuZGVjbGFyZSgiYS1maXgtZXZlbnQtb2ZmIiwhMSk7digicGFnZWpzOnBrZ0V4ZWNUaW1lIix3KCktTil9KSh3aW5kb3csZG9jdW1lbnQsRGF0ZSk7ICAgKHdpbmRvdy5BbWF6b25VSVBhZ2VKUyA\/IEFtYXpvblVJUGFnZUpTIDogUCkubG9hZC5qcygnaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9JLzYxWEt4ckJ0RFZMLl9SQ3wxMVkrNXgra2tUTC5qcyw1MTEwNmdTRG5KTC5qcywxMW1nVnR1TXg2TC5qcywxMWdpWHRaQ3dWTC5qcywwMSt6K3VJZUotTC5qcywwMVZSTVYzRkJkTC5qcywyMU5OWGZNaXRTTC5qcywxMXJSakRMZEFWTC5qcyw1MUgxOWhKUllyTC5qcywxMWtXdTNjTmpZTC5qcywxMWcyQlBYTmxyTC5qcywxMU9SRW51MWVwTC5qcywxMUtiWnltdzVaTC5qcywyMXI1M1NKZzdMTC5qcywwMTkwdnh0bHpjTC5qcyw1MTFWTmJhZzJRTC5qcywzMWFzazB5LUxCTC5qcywwMTVjLTZDSVA5TC5qcywwMWV6ajVSa3oxTC5qcywxMStSeFZkaE5jTC5qcywzMW8yTkdUWFRoTC5qcywwMXJwYXVUZXA0TC5qcywwMXJ2alJLSFJOTC5qc18uanM\/QVVJQ2xpZW50cy9BbWF6b25VSScpOyA8L3NjcmlwdD4gPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2ltYWdlcy1uYS5zc2wtaW1hZ2VzLWFtYXpvbi5jb20vaW1hZ2VzL0kvMTFFSVE1SUdxYUwuX1JDfDAxWlRIVFpPYm5MLmNzcyw0MVpJaDM2aFF2TC5jc3MsMzFEbXhDbEEtSkwuY3NzLDAxUWE1T1pNc1RMLmNzcywwMW9XWlBTUDFyTC5jc3MsMDEzMXZxd1A1VUwuY3NzLDQxMGlPSXB4anFMLmNzcywxMVRJdXlTcXI2TC5jc3MsMDFFbG5QaUR4V0wuY3NzLDExTzVwbTlVc2RMLmNzcywwMXl2dU1mQVNUTC5jc3MsMDFJZEtjQnVBZEwuY3NzLDAxeS1YQWxJKzJMLmNzcywwMW5YVHBPSTl2TC5jc3MsMDE0SkdaMElHcEwuY3NzLDAxb0RSM0lVTE5MLmNzcyw0MXJKUktUQkR1TC5jc3MsMDFYUEhKazYwLUwuY3NzLDAxSVdjNitjeElMLmNzcywyMThQNjNkc1JtTC5jc3MsMTFaUHFFbmM0UUwuY3NzLDIxcUhLU1RTSkNMLmNzcywwMVdtenhxN3BITC5jc3MsMDFDRlVnc0EtWUwuY3NzLDIxZDFsckliLTJMLmNzcywxMWg3Nm5rSFUtTC5jc3MsMTFNTzNiMXJ4ekwuY3NzLDExcGg4YXYxaEFMLmNzcywxMWItR1IyNkRWTC5jc3MsMDEtZld6M3NPUUwuY3NzLDExb2NyZ0tvRS1MLmNzcywyMXZaQmJHOGJ0TC5jc3MsMTE3WUFvOVRGb0wuY3NzLDAxWVZZN2pQWEVMLmNzcywyMXozcWFMLUNoTC5jc3MsMTFNSFJNcjh5bUwuY3NzLDAxVFF5c0hFLXdMLmNzcywxMWtKNGVvczhCTC5jc3MsMTFYRWtQNFozRUwuY3NzLDAxY2JTM1VLMTFMLmNzcywyMTQ4MVlheCsyTC5jc3MsMDE4dEN5enBCREwuY3NzXy5jc3M\/QVVJQ2xpZW50cy9BbWF6b25VSSIgLz4gPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiBpZiAoKHR5cGVvZiBTRkNsaWVudCAhPSAidW5kZWZpbmVkIikgJiYgU0ZDbGllbnQuc2VuZEFkSW5mbykgeyAgICAgdmFyIGZlZWRiYWNrSnNvbiA9IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXNpbiIgOiAiQjA3SDU1N1RQUSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGl0bGUiIDogIkNvbmFpciAtIFNlY2Fkb3IgZGUgcGVsbyBkZSBjZXLDoW1pY2EgZG9ibGUgZGUgMTg3NSB2YXRpb3MgY29uIGFjb25kaWNpb25hbWllbnRvIGnDs25pY28sIGNvbG9yIGJsYW5jbyB5IG9ybyByb3NhLCAxIHVuaWRhZCAocGFxdWV0ZSBkZSAxKSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByaWNlIiA6ICJVUyQyMi40MyIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtZXJjaGFudE5hbWUiIDogIkFtYXpvbi5jb20iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1lcmNoYW50Q3VzdG9tZXJJRCIgOiAiQVRWUERLSUtYMERFUiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2t1IiA6ICJCMDdINTU3VFBRIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhZElkIiA6ICJBMDM0Mzc3OTJWUk45R0tIM1NNUDgiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhbXBhaWduSWQiIDogIkEwNzU2NDQ4MlRDSDBMNEFDN01CVCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICBdOyAgICAgU0ZDbGllbnQuc2VuZEFkSW5mbyhmZWVkYmFja0pzb24pOyB9IDwvc2NyaXB0PiA8c3R5bGU+ICAgICAuc3BfaHFwX3Bob25lX3NoYXJlZF9wcm9kdWN0X2ltYWdlIHsgICAgICAgICB3aWR0aDogMTIwcHg7ICAgICAgICAgaGVpZ2h0OiAxMDVweDsgICAgICAgICBtYXJnaW46IDEwcHggMTBweCAxMHB4IDEwcHg7ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyAgICAgfSAgICAgLnNwX2hxcF9waG9uZV9zaGFyZWRfcmVzcG9uc2l2ZV9ib3ggeyAgICAgICAgIHdpZHRoOiAxMDAlOyAgICAgICAgIGhlaWdodDoxMjVweDsgICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTsgICAgICAgICBtYXJnaW4tbGVmdDotOTk5OTk5cHg7ICAgICB9ICAgICAuc3BfaHFwX3Bob25lX3NoYXJlZF9idXlfYm94IHsgICAgICAgICBwYWRkaW5nLXRvcDogMTBweDsgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxM3B4OyAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OyAgICAgICAgIHBhZGRpbmctbGVmdDogMTQwcHg7ICAgICAgICAgaGVpZ2h0OiAxMjVweDsgICAgICAgICBkaXNwbGF5OiBmbGV4OyAgICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7ICAgICB9ICAgICAuc3BfaHFwX3Bob25lX3NoYXJlZF9wcm9kdWN0X3RpdGxlIHsgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsgICAgICAgICBsaW5lLWhlaWdodDogMThweDsgICAgICAgICBjb2xvcjogIzExMTExMTsgICAgIH0gICAgIC5zcF9ocXBfcGhvbmVfc2hhcmVkX3JhdGluZyB7ICAgICAgICAgZm9udC1zaXplOiAxMnB4OyAgICAgICAgIGNvbG9yOiAjNTU1OyAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAgICAgICB0b3A6IDJweDsgICAgIH0gICAgIC5zcF9ocXBfcGhvbmVfc2hhcmVkX3ByaWNlIHsgICAgICAgICBmb250LXNpemU6IDEzcHg7ICAgICAgICAgY29sb3I6ICM1NTU7ICAgICB9ICAgICAuc3BfaHFwX3Bob25lX3NoYXJlZF9hZExpbmsgeyAgICAgICAgIHdpZHRoOiAxMDAlOyAgICAgICAgIGhlaWdodDogMTAwJTsgICAgICAgICB6LWluZGV4OiAxNTA7ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyAgICAgICAgIHRvcDogMHB4OyAgICAgICAgIHJpZ2h0OiAwcHg7ICAgICB9ICAgICAuc3BfaHFwX3Bob25lX3NoYXJlZF9wcmltZV9pY29uIHsgICAgICAgICBtYXJnaW4tbGVmdDogNXB4OyAgICAgfSAgICAgLnNwX2hxcF9waG9uZV9zaGFyZWRfYmFja2dyb3VuZCB7ICAgICAgICAgdG9wOiAwOyAgICAgICAgIGxlZnQ6IDA7ICAgICAgICAgYm90dG9tOiAwOyAgICAgICAgIHJpZ2h0OiAwOyAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgICAgICAgICB6LWluZGV4OiAxMDA7ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQ3MyksIHJnYmEoMCwgMCwgMCwgMC4wNDczKSk7ICAgICAgICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNDczKSwgcmdiYSgwLCAwLCAwLCAwLjA0NzMpKTsgICAgICAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQ3MyksIHJnYmEoMCwgMCwgMCwgMC4wNDczKSk7ICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNDczKSwgcmdiYSgwLCAwLCAwLCAwLjA0NzMpKTsgICAgIH0gICAgIGRpdi5hLWJveC5zcF9ocXBfcGhvbmVfc2hhcmVkX2JhY2tncm91bmQgPiBkaXYgeyAgICAgICAgIGhlaWdodDogMTAwJTsgICAgIH0gICAgIC5zcF9ocXBfcGhvbmVfc2hhcmVkX2ZpcnN0Um93IHsgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7ICAgICB9ICAgICAuc3BfaHFwX3Bob25lX3NoYXJlZF9zZWNvbmRSb3cgeyAgICAgICAgIG1hcmdpbi10b3A6IDVweDsgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7ICAgICB9ICAgICAuc3BfaHFwX3Bob25lX3NoYXJlZF90aGlyZFJvdyB7ICAgICAgICAgbWFyZ2luLXRvcDogNXB4OyAgICAgfSAgICAgLnNwX3ByaW1lX3dhcmRyb2JlX2JhZGdlIHsgICAgICAgICBtYXJnaW4tbGVmdDogNXB4OyAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAgICAgICB0b3A6IDRweDsgICAgIH0gPC9zdHlsZT4gICAgICAgICAgPGRpdiBpZD0ic3BfaHFwX3Bob25lX3NoYXJlZCIgY2xhc3M9ImEtYm94IHNwX2hxcF9waG9uZV9zaGFyZWRfcmVzcG9uc2l2ZV9ib3giPjxkaXYgY2xhc3M9ImEtYm94LWlubmVyIGEtcGFkZGluZy1ub25lIj4gICAgICAgICA8ZGl2IGlkPSJzcF9ocXBfcGhvbmVfc2hhcmVkX2lubmVyIiBwYWRkaW5nPSJub25lIiBjbGFzcz0ic3BfaHFwX3Bob25lX3NoYXJlZF9iYWNrZ3JvdW5kIHNwX2hxcF9waG9uZV9zaGFyZWRfcmVzcG9uc2l2ZV9ib3giPiAgICAgICAgICAgICA8YSBjbGFzcz0iYS1saW5rLW5vcm1hbCBzcF9ocXBfcGhvbmVfc2hhcmVkX2FkTGluayBhLXRleHQtbm9ybWFsIiB0YXJnZXQ9Il90b3AiIHJlbD0ibm9vcGVuZXIiIHRpdGxlPSJDb25haXIgLSBTZWNhZG9yIGRlIHBlbG8gZGUgY2Vyw6FtaWNhIGRvYmxlIGRlIDE4NzUgdmF0aW9zIGNvbiBhY29uZGljaW9uYW1pZW50byBpw7NuaWNvLCBjb2xvciBibGFuY28geSBvcm8gcm9zYSwgMSB1bmlkYWQgKHBhcXVldGUgZGUgMSkiIGhyZWY9Imh0dHBzOi8vd3d3LmFtYXpvbi5jb20vZ3AvYXcvZC9CMDdINTU3VFBRL3JlZj1zc3BhX21iX2hxcF9kZXRhaWxfbW9iaWxlX2FheF8wP2llPVVURjgmYW1wO3BzYz0xJmFtcDtzcExhPVpXNWpjbmx3ZEdWa1VYVmhiR2xtYVdWeVBVRXpTRVUxTWxRMU1WWXdXRXBMSm1WdVkzSjVjSFJsWkVsa1BVRXdOREUyT0RFNU1rOU9Ua05GVGpRMVdrTkRWQ1psYm1OeWVYQjBaV1JCWkVsa1BVRXdNelF6TnpjNU1sWlNUamxIUzBnelUwMVFPQ1ozYVdSblpYUk9ZVzFsUFhOd1gyaHhjRjl3YUc5dVpWOXphR0Z5WldRbVlXTjBhVzl1UFdOc2FXTnJVbVZrYVhKbFkzUT0iPjwvYT4gICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgPGltZyBhbHQ9IkNvbmFpciAtIFNlY2Fkb3IgZGUgcGVsbyBkZSBjZXLDoW1pY2EgZG9ibGUgZGUgMTg3NSB2YXRpb3MgY29uIGFjb25kaWNpb25hbWllbnRvIGnDs25pY28sIGNvbG9yIGJsYW5jbyB5IG9ybyByb3NhLCAxIHVuaWRhZCAocGFxdWV0ZSBkZSAxKSIgc3JjPSJodHRwczovL20ubWVkaWEtYW1hem9uLmNvbS9pbWFnZXMvSS8zMTdPczB0QUpqTC5fQUNfU1IxMjAsMTA1Xy5qcGciIGNsYXNzPSJhLWR5bmFtaWMtaW1hZ2Ugc3BfaHFwX3Bob25lX3NoYXJlZF9wcm9kdWN0X2ltYWdlIiBoZWlnaHQ9IjEwNXB4IiB3aWR0aD0iMTIwcHgiIGRhdGEtYS1keW5hbWljLWltYWdlPSJ7JnF1b3Q7aHR0cHM6Ly9tLm1lZGlhLWFtYXpvbi5jb20vaW1hZ2VzL0kvMzE3T3MwdEFKakwuX0FDX1NSMzYwLDMxNV8uanBnJnF1b3Q7OlszNjAsMzE1XSwmcXVvdDtodHRwczovL20ubWVkaWEtYW1hem9uLmNvbS9pbWFnZXMvSS8zMTdPczB0QUpqTC5fQUNfU1IxMjAsMTA1Xy5qcGcmcXVvdDs6WzEyMCwxMDVdLCZxdW90O2h0dHBzOi8vbS5tZWRpYS1hbWF6b24uY29tL2ltYWdlcy9JLzMxN09zMHRBSmpMLl9BQ19TUjI0MCwyMTBfLmpwZyZxdW90OzpbMjQwLDIxMF19Ii8+ICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImEtcm93IHNwX2hxcF9waG9uZV9zaGFyZWRfYnV5X2JveCI+ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhLXJvdyBzcF9ocXBfcGhvbmVfc2hhcmVkX2ZpcnN0Um93Ij4gICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD0ic3BfaHFwX3Bob25lX3NoYXJlZF9kaXNwbGF5X3RpdGxlIiBjbGFzcz0iYS1jb2xvci1iYXNlIHNwX2hxcF9waG9uZV9zaGFyZWRfcHJvZHVjdF90aXRsZSI+Q29uYWlyIC0gU2VjYWRvciBkZSBwZWxvIGRlIGNlcsOhbWljYSBkb2JsZSBkZSAxODc1IHZhdGlvcyBjb24gYWNvbmRpY2lvbmFtaWVudG8gacOzbmljbywgY29sb3IgYmxhbmNvIHkgb3JvIHJvc2EsIDEgdW5pZGFkIChwYXF1ZXRlIGRlIDEpPC9zcGFuPiAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhLXJvdyBzcF9ocXBfcGhvbmVfc2hhcmVkX3NlY29uZFJvdyI+ICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJhLWljb24gYS1pY29uLXN0YXIgYS1zdGFyLTQtNSI+PC9pPiAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3BfaHFwX3Bob25lX3NoYXJlZF9yYXRpbmciPjMsMjI1PC9zcGFuPiAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNwX2hxcF9waG9uZV9zaGFyZWRfdGhpcmRSb3ciIGNsYXNzPSJhLXJvdyBzcF9ocXBfcGhvbmVfc2hhcmVkX3RoaXJkUm93Ij4gICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3BfaHFwX3Bob25lX3NoYXJlZF9wcmljZSI+VVMkMjIuNDM8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iYS1pY29uIGEtaWNvbi1wcmltZSBhLWljb24tc21hbGwgc3BfaHFwX3Bob25lX3NoYXJlZF9wcmltZV9pY29uIiByb2xlPSJwcmVzZW50YXRpb24iPjwvaT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgIDwvZGl2PjwvZGl2PiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+KGZ1bmN0aW9uKGYpIHt2YXIgX25wPSh3aW5kb3cuUC5fbmFtZXNwYWNlKCJGaXJlYmlyZFNwUmVuZGVyaW5nIikpO2lmKF9ucC5ndWFyZEZhdGFsKXtfbnAuZ3VhcmRGYXRhbChmKShfbnApO31lbHNle2YoX25wKTt9fShmdW5jdGlvbihQKSB7ICAgICBQLndoZW4oJ0EnLCAnalF1ZXJ5JykuZXhlY3V0ZShmdW5jdGlvbihBLCBqUXVlcnkpIHsgICAgICAgICAvKiAgKiAgalF1ZXJ5IGRvdGRvdGRvdCAxLjYuNyAgKiAgKiAgQ29weXJpZ2h0IChjKSAyMDEzIEZyZWQgSGV1c3NjaGVuICAqICB3d3cuZnJlYnNpdGUubmwgICogICogIFBsdWdpbiB3ZWJzaXRlOiAgKiAgZG90ZG90ZG90LmZyZWJzaXRlLm5sICAqICAqICBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgYW5kIEdQTCBsaWNlbnNlcy4gICogIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTUlUX0xpY2Vuc2UgICogIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvR05VX0dlbmVyYWxfUHVibGljX0xpY2Vuc2UgICogICogIFRoaXMgc29mdHdhcmUgaXMgdXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuICAqLyAoZnVuY3Rpb24oICQsIHVuZGVmICkgeyAgICAgaWYgKCAkLmZuLmRvdGRvdGRvdCApICAgICB7ICAgICAgICAgcmV0dXJuOyAgICAgfSAgICAgJC5mbi5kb3Rkb3Rkb3QgPSBmdW5jdGlvbiggbyApICAgICB7ICAgICAgICAgaWYgKCB0aGlzLmxlbmd0aCA9PSAwICkgICAgICAgICB7ICAgICAgICAgICAgIGlmICggIW8gfHwgby5kZWJ1ZyAhPT0gZmFsc2UgKSAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICBkZWJ1ZyggdHJ1ZSwgJ05vIGVsZW1lbnQgZm91bmQgZm9yICInICsgdGhpcy5zZWxlY3RvciArICciLicgKTsgICAgICAgICAgICAgfSAgICAgICAgICAgICByZXR1cm4gdGhpczsgICAgICAgICB9ICAgICAgICAgaWYgKCB0aGlzLmxlbmd0aCA+IDEgKSAgICAgICAgIHsgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWFjaCggICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmRvdGRvdGRvdCggbyApOyAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICApOyAgICAgICAgIH0gICAgICAgICB2YXIgJGRvdCA9IHRoaXM7ICAgICAgICAgaWYgKCAkZG90LmRhdGEoICdkb3Rkb3Rkb3QnICkgKSAgICAgICAgIHsgICAgICAgICAgICAgJGRvdC50cmlnZ2VyKCAnZGVzdHJveS5kb3QnICk7ICAgICAgICAgfSAgICAgICAgICRkb3QuZGF0YSggJ2RvdGRvdGRvdC1zdHlsZScsICRkb3QuYXR0ciggJ3N0eWxlJyApIHx8ICcnICk7ICAgICAgICAgJGRvdC5jc3MoICd3b3JkLXdyYXAnLCAnYnJlYWstd29yZCcgKTsgICAgICAgICBpZiAoJGRvdC5jc3MoICd3aGl0ZS1zcGFjZScgKSA9PT0gJ25vd3JhcCcpICAgICAgICAgeyAgICAgICAgICAgICAkZG90LmNzcyggJ3doaXRlLXNwYWNlJywgJ25vcm1hbCcgKTsgICAgICAgICB9ICAgICAgICAgJGRvdC5iaW5kX2V2ZW50cyA9IGZ1bmN0aW9uKCkgICAgICAgICB7ICAgICAgICAgICAgICRkb3QuYmluZCggICAgICAgICAgICAgICAgICd1cGRhdGUuZG90JywgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCBlLCBjICkgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7ICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsgICAgICAgICAgICAgICAgICAgICBvcHRzLm1heEhlaWdodCA9ICggdHlwZW9mIG9wdHMuaGVpZ2h0ID09ICdudW1iZXInICkgICAgICAgICAgICAgICAgICAgICAgICAgPyBvcHRzLmhlaWdodCAgICAgICAgICAgICAgICAgICAgICAgICA6IGdldFRydWVJbm5lckhlaWdodCggJGRvdCApOyAgICAgICAgICAgICAgICAgICAgIG9wdHMubWF4SGVpZ2h0ICs9IG9wdHMudG9sZXJhbmNlOyAgICAgICAgICAgICAgICAgICAgIGlmICggdHlwZW9mIGMgIT0gJ3VuZGVmaW5lZCcgKSAgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCB0eXBlb2YgYyA9PSAnc3RyaW5nJyB8fCBjIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgKSAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gJCgnPGRpdiAvPicpLmFwcGVuZCggYyApLmNvbnRlbnRzKCk7ICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBjIGluc3RhbmNlb2YgJCApICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZ0NvbnRlbnQgPSBjOyAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICRpbnIgPSAkZG90LndyYXBJbm5lciggJzxkaXYgY2xhc3M9ImRvdGRvdGRvdCIgLz4nICkuY2hpbGRyZW4oKTsgICAgICAgICAgICAgICAgICAgICAkaW5yLmVtcHR5KCkgICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCggb3JnQ29udGVudC5jbG9uZSggdHJ1ZSApICkgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoICdicicgKS5yZXBsYWNlV2l0aCggJyAgPGJyIC8+ICAnICkuZW5kKCkgICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JyAgICA6ICdhdXRvJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aCcgICAgIDogJ2F1dG8nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlcicgICAgOiAnbm9uZScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZycgICA6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luJyAgICA6IDAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7ICAgICAgICAgICAgICAgICAgICAgdmFyIGFmdGVyID0gZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgIHRydW5jID0gZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgaWYgKCBjb25mLmFmdGVyRWxlbWVudCApICAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICBhZnRlciA9IGNvbmYuYWZ0ZXJFbGVtZW50LmNsb25lKCB0cnVlICk7ICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyLnNob3coKTsgICAgICAgICAgICAgICAgICAgICAgICAgY29uZi5hZnRlckVsZW1lbnQucmVtb3ZlKCk7ICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgIGlmICggdGVzdCggJGluciwgb3B0cyApICkgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggb3B0cy53cmFwID09ICdjaGlsZHJlbicgKSAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVuYyA9IGNoaWxkcmVuKCAkaW5yLCBvcHRzLCBhZnRlciApOyAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1bmMgPSBlbGxpcHNpcyggJGluciwgJGRvdCwgJGluciwgb3B0cywgYWZ0ZXIgKTsgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAkaW5yLnJlcGxhY2VXaXRoKCAkaW5yLmNvbnRlbnRzKCkgKTsgICAgICAgICAgICAgICAgICAgICAkaW5yID0gbnVsbDsgICAgICAgICAgICAgICAgICAgICBpZiAoICQuaXNGdW5jdGlvbiggb3B0cy5jYWxsYmFjayApICkgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMuY2FsbGJhY2suY2FsbCggJGRvdFsgMCBdLCB0cnVuYywgb3JnQ29udGVudCApOyAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICBjb25mLmlzVHJ1bmNhdGVkID0gdHJ1bmM7ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydW5jOyAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICApLmJpbmQoICAgICAgICAgICAgICAgICAnaXNUcnVuY2F0ZWQuZG90JywgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCBlLCBmbiApICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOyAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7ICAgICAgICAgICAgICAgICAgICAgaWYgKCB0eXBlb2YgZm4gPT0gJ2Z1bmN0aW9uJyApICAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICBmbi5jYWxsKCAkZG90WyAwIF0sIGNvbmYuaXNUcnVuY2F0ZWQgKTsgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbmYuaXNUcnVuY2F0ZWQ7ICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICkuYmluZCggICAgICAgICAgICAgICAgICdvcmlnaW5hbENvbnRlbnQuZG90JywgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCBlLCBmbiApICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOyAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7ICAgICAgICAgICAgICAgICAgICAgaWYgKCB0eXBlb2YgZm4gPT0gJ2Z1bmN0aW9uJyApICAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICBmbi5jYWxsKCAkZG90WyAwIF0sIG9yZ0NvbnRlbnQgKTsgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9yZ0NvbnRlbnQ7ICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICkuYmluZCggICAgICAgICAgICAgICAgICdkZXN0cm95LmRvdCcsICAgICAgICAgICAgICAgICBmdW5jdGlvbiggZSApICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOyAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7ICAgICAgICAgICAgICAgICAgICAgJGRvdC51bndhdGNoKCkgICAgICAgICAgICAgICAgICAgICAgICAgLnVuYmluZF9ldmVudHMoKSAgICAgICAgICAgICAgICAgICAgICAgICAuZW1wdHkoKSAgICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCBvcmdDb250ZW50ICkgICAgICAgICAgICAgICAgICAgICAgICAgLmF0dHIoICdzdHlsZScsICRkb3QuZGF0YSggJ2RvdGRvdGRvdC1zdHlsZScgKSB8fCAnJyApICAgICAgICAgICAgICAgICAgICAgICAgIC5kYXRhKCAnZG90ZG90ZG90JywgZmFsc2UgKTsgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgKTsgICAgICAgICAgICAgcmV0dXJuICRkb3Q7ICAgICAgICAgfTsgICAgICAgICAkZG90LnVuYmluZF9ldmVudHMgPSBmdW5jdGlvbigpICAgICAgICAgeyAgICAgICAgICAgICAkZG90LnVuYmluZCgnLmRvdCcpOyAgICAgICAgICAgICByZXR1cm4gJGRvdDsgICAgICAgICB9OyAgICAgICAgICRkb3Qud2F0Y2ggPSBmdW5jdGlvbigpICAgICAgICAgeyAgICAgICAgICAgICAkZG90LnVud2F0Y2goKTsgICAgICAgICAgICAgaWYgKCBvcHRzLndhdGNoID09ICd3aW5kb3cnICkgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgdmFyICR3aW5kb3cgPSAkKHdpbmRvdyksICAgICAgICAgICAgICAgICAgICAgX3dXaWR0aCA9ICR3aW5kb3cud2lkdGgoKSwgICAgICAgICAgICAgICAgICAgICBfd0hlaWdodCA9ICR3aW5kb3cuaGVpZ2h0KCk7ICAgICAgICAgICAgICAgICAkd2luZG93LmJpbmQoICAgICAgICAgICAgICAgICAgICAgJ3Jlc2l6ZS5kb3QnICsgY29uZi5kb3RJZCwgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpICAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIF93V2lkdGggIT0gJHdpbmRvdy53aWR0aCgpIHx8IF93SGVpZ2h0ICE9ICR3aW5kb3cuaGVpZ2h0KCkgfHwgIW9wdHMud2luZG93UmVzaXplRml4ICkgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3dXaWR0aCA9ICR3aW5kb3cud2lkdGgoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF93SGVpZ2h0ID0gJHdpbmRvdy5oZWlnaHQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggd2F0Y2hJbnQgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoIHdhdGNoSW50ICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXRjaEludCA9IHNldFRpbWVvdXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRvdC50cmlnZ2VyKCAndXBkYXRlLmRvdCcgKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICk7ICAgICAgICAgICAgIH0gICAgICAgICAgICAgZWxzZSAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICB3YXRjaE9yZyA9IGdldFNpemVzKCAkZG90ICk7ICAgICAgICAgICAgICAgICB3YXRjaEludCA9IHNldEludGVydmFsKCAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB3YXRjaE5ldyA9IGdldFNpemVzKCAkZG90ICk7ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggd2F0Y2hPcmcud2lkdGggICE9IHdhdGNoTmV3LndpZHRoIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2F0Y2hPcmcuaGVpZ2h0ICE9IHdhdGNoTmV3LmhlaWdodCApICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkb3QudHJpZ2dlciggJ3VwZGF0ZS5kb3QnICk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXRjaE9yZyA9IGdldFNpemVzKCAkZG90ICk7ICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICB9LCAxMDAgICAgICAgICAgICAgICAgICk7ICAgICAgICAgICAgIH0gICAgICAgICAgICAgcmV0dXJuICRkb3Q7ICAgICAgICAgfTsgICAgICAgICAkZG90LnVud2F0Y2ggPSBmdW5jdGlvbigpICAgICAgICAgeyAgICAgICAgICAgICAkKHdpbmRvdykudW5iaW5kKCAncmVzaXplLmRvdCcgKyBjb25mLmRvdElkICk7ICAgICAgICAgICAgIGlmICggd2F0Y2hJbnQgKSAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKCB3YXRjaEludCApOyAgICAgICAgICAgICB9ICAgICAgICAgICAgIHJldHVybiAkZG90OyAgICAgICAgIH07ICAgICAgICAgdmFyIG9yZ0NvbnRlbnQgID0gJGRvdC5jb250ZW50cygpLCAgICAgICAgICAgICBvcHRzICAgICAgICA9ICQuZXh0ZW5kKCB0cnVlLCB7fSwgJC5mbi5kb3Rkb3Rkb3QuZGVmYXVsdHMsIG8gKSwgICAgICAgICAgICAgY29uZiAgICAgICAgPSB7fSwgICAgICAgICAgICAgd2F0Y2hPcmcgICAgPSB7fSwgICAgICAgICAgICAgd2F0Y2hJbnQgICAgPSBudWxsLCAgICAgICAgICAgICAkaW5yICAgICAgICA9IG51bGw7ICAgICAgICAgaWYgKCAhKCBvcHRzLmxhc3RDaGFyYWN0ZXIucmVtb3ZlIGluc3RhbmNlb2YgQXJyYXkgKSApICAgICAgICAgeyAgICAgICAgICAgICBvcHRzLmxhc3RDaGFyYWN0ZXIucmVtb3ZlID0gJC5mbi5kb3Rkb3Rkb3QuZGVmYXVsdEFycmF5cy5sYXN0Q2hhcmFjdGVyLnJlbW92ZTsgICAgICAgICB9ICAgICAgICAgaWYgKCAhKCBvcHRzLmxhc3RDaGFyYWN0ZXIubm9FbGxpcHNpcyBpbnN0YW5jZW9mIEFycmF5ICkgKSAgICAgICAgIHsgICAgICAgICAgICAgb3B0cy5sYXN0Q2hhcmFjdGVyLm5vRWxsaXBzaXMgPSAkLmZuLmRvdGRvdGRvdC5kZWZhdWx0QXJyYXlzLmxhc3RDaGFyYWN0ZXIubm9FbGxpcHNpczsgICAgICAgICB9ICAgICAgICAgY29uZi5hZnRlckVsZW1lbnQgICA9IGdldEVsZW1lbnQoIG9wdHMuYWZ0ZXIsICRkb3QgKTsgICAgICAgICBjb25mLmlzVHJ1bmNhdGVkICAgID0gZmFsc2U7ICAgICAgICAgY29uZi5kb3RJZCAgICAgICAgICA9IGRvdElkKys7ICAgICAgICAgJGRvdC5kYXRhKCAnZG90ZG90ZG90JywgdHJ1ZSApICAgICAgICAgICAgIC5iaW5kX2V2ZW50cygpICAgICAgICAgICAgIC50cmlnZ2VyKCAndXBkYXRlLmRvdCcgKTsgICAgICAgICBpZiAoIG9wdHMud2F0Y2ggKSAgICAgICAgIHsgICAgICAgICAgICAgJGRvdC53YXRjaCgpOyAgICAgICAgIH0gICAgICAgICByZXR1cm4gJGRvdDsgICAgIH07ICAgICAkLmZuLmRvdGRvdGRvdC5kZWZhdWx0cyA9IHsgICAgICAgICAnZWxsaXBzaXMnICAgICAgICAgIDogJy4uLiAnLCAgICAgICAgICd3cmFwJyAgICAgICAgICAgICAgOiAnd29yZCcsICAgICAgICAgJ2ZhbGxiYWNrVG9MZXR0ZXInICA6IHRydWUsICAgICAgICAgJ2xhc3RDaGFyYWN0ZXInICAgICA6IHt9LCAgICAgICAgICd0b2xlcmFuY2UnICAgICAgICAgOiAwLCAgICAgICAgICdjYWxsYmFjaycgICAgICAgICAgOiBudWxsLCAgICAgICAgICdhZnRlcicgICAgICAgICAgICAgOiBudWxsLCAgICAgICAgICdoZWlnaHQnICAgICAgICAgICAgOiBudWxsLCAgICAgICAgICd3YXRjaCcgICAgICAgICAgICAgOiBmYWxzZSwgICAgICAgICAnd2luZG93UmVzaXplRml4JyAgIDogdHJ1ZSwgICAgICAgICAnZGVidWcnICAgICAgICAgICAgIDogZmFsc2UgICAgIH07ICAgICAkLmZuLmRvdGRvdGRvdC5kZWZhdWx0QXJyYXlzID0geyAgICAgICAgICdsYXN0Q2hhcmFjdGVyJyAgICAgOiB7ICAgICAgICAgICAgICdyZW1vdmUnICAgICAgICAgICAgOiBbICcgJywgJ1x1MzAwMCcsICcsJywgJzsnLCAnLicsICchJywgJz8nIF0sICAgICAgICAgICAgICdub0VsbGlwc2lzJyAgICAgICAgOiBbXSAgICAgICAgIH0gICAgIH07ICAgICB2YXIgZG90SWQgPSAxOyAgICAgZnVuY3Rpb24gY2hpbGRyZW4oICRlbGVtLCBvLCBhZnRlciApICAgICB7ICAgICAgICAgdmFyICRlbGVtZW50cyAgID0gJGVsZW0uY2hpbGRyZW4oKSwgICAgICAgICAgICAgaXNUcnVuY2F0ZWQgPSBmYWxzZTsgICAgICAgICAkZWxlbS5lbXB0eSgpOyAgICAgICAgIGZvciAoIHZhciBhID0gMCwgbCA9ICRlbGVtZW50cy5sZW5ndGg7IGEgPCBsOyBhKysgKSAgICAgICAgIHsgICAgICAgICAgICAgdmFyICRlID0gJGVsZW1lbnRzLmVxKCBhICk7ICAgICAgICAgICAgICRlbGVtLmFwcGVuZCggJGUgKTsgICAgICAgICAgICAgaWYgKCBhZnRlciApICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICRlbGVtLmFwcGVuZCggYWZ0ZXIgKTsgICAgICAgICAgICAgfSAgICAgICAgICAgICBpZiAoIHRlc3QoICRlbGVtLCBvICkgKSAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAkZS5yZW1vdmUoKTsgICAgICAgICAgICAgICAgIGlzVHJ1bmNhdGVkID0gdHJ1ZTsgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICB9ICAgICAgICAgICAgIGVsc2UgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgaWYgKCBhZnRlciApICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgYWZ0ZXIuZGV0YWNoKCk7ICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgIH0gICAgICAgICB9ICAgICAgICAgcmV0dXJuIGlzVHJ1bmNhdGVkOyAgICAgfSAgICAgZnVuY3Rpb24gZWxsaXBzaXMoICRlbGVtLCAkZCwgJGksIG8sIGFmdGVyICkgICAgIHsgICAgICAgICB2YXIgJGVsZW1lbnRzICAgPSAkZWxlbS5jb250ZW50cygpLCAgICAgICAgICAgICBpc1RydW5jYXRlZCA9IGZhbHNlOyAgICAgICAgICRlbGVtLmVtcHR5KCk7ICAgICAgICAgdmFyIG5vdHggPSAndGFibGUsIHRoZWFkLCB0Ym9keSwgdGZvb3QsIHRyLCBjb2wsIGNvbGdyb3VwLCBvYmplY3QsIGVtYmVkLCBwYXJhbSwgb2wsIHVsLCBkbCwgYmxvY2txdW90ZSwgc2VsZWN0LCBvcHRncm91cCwgb3B0aW9uLCB0ZXh0YXJlYSwgc2NyaXB0LCBzdHlsZSc7ICAgICAgICAgZm9yICggdmFyIGEgPSAwLCBsID0gJGVsZW1lbnRzLmxlbmd0aDsgYSA8IGw7IGErKyApICAgICAgICAgeyAgICAgICAgICAgICBpZiAoIGlzVHJ1bmNhdGVkICkgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgIH0gICAgICAgICAgICAgdmFyIGUgICA9ICRlbGVtZW50c1sgYSBdLCAgICAgICAgICAgICAgICAgJGUgID0gJChlKTsgICAgICAgICAgICAgaWYgKCB0eXBlb2YgZSA9PSAndW5kZWZpbmVkJyB8fCAoIGUubm9kZVR5cGUgPT0gMyAmJiAkLnRyaW0oIGUuZGF0YSApLmxlbmd0aCA9PSAwICkgKSAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICBjb250aW51ZTsgICAgICAgICAgICAgfSAgICAgICAgICAgICAkZWxlbS5hcHBlbmQoICRlICk7ICAgICAgICAgICAgIGlmICggYWZ0ZXIgKSAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAkZWxlbVsgJGVsZW0uaXMoIG5vdHggKSA\/ICdhZnRlcicgOiAnYXBwZW5kJyBdKCBhZnRlciApOyAgICAgICAgICAgICB9ICAgICAgICAgICAgIGlmICggdGVzdCggJGksIG8gKSApICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgIGlmICggZS5ub2RlVHlwZSA9PSAzICkgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICBpc1RydW5jYXRlZCA9IGVsbGlwc2lzRWxlbWVudCggJGUsICRkLCAkaSwgbywgYWZ0ZXIgKTsgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgIGVsc2UgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICBpc1RydW5jYXRlZCA9IGVsbGlwc2lzKCAkZSwgJGQsICRpLCBvLCBhZnRlciApOyAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgaWYgKCAhaXNUcnVuY2F0ZWQgKSAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICRlLnJlbW92ZSgpOyAgICAgICAgICAgICAgICAgICAgIGlzVHJ1bmNhdGVkID0gdHJ1ZTsgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgfSAgICAgICAgICAgICBpZiAoICFpc1RydW5jYXRlZCApICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgIGlmICggYWZ0ZXIgKSAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgIGFmdGVyLmRldGFjaCgpOyAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICB9ICAgICAgICAgfSAgICAgICAgIHJldHVybiBpc1RydW5jYXRlZDsgICAgIH0gICAgIGZ1bmN0aW9uIGVsbGlwc2lzRWxlbWVudCggJGUsICRkLCAkaSwgbywgYWZ0ZXIgKSAgICAgeyAgICAgICAgIHZhciBlID0gJGVbIDAgXTsgICAgICAgICBpZiAoICFlICkgICAgICAgICB7ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgICAgICAgICB9ICAgICAgICAgdmFyIHR4dCAgICAgICAgID0gZ2V0VGV4dENvbnRlbnQoIGUgKSwgICAgICAgICAgICAgc3BhY2UgICAgICAgPSAoIHR4dC5pbmRleE9mKCcgJykgIT09IC0xICkgPyAnICcgOiAnXHUzMDAwJywgICAgICAgICAgICAgc2VwYXJhdG9yICAgPSAoIG8ud3JhcCA9PSAnbGV0dGVyJyApID8gJycgOiBzcGFjZSwgICAgICAgICAgICAgdGV4dEFyciAgICAgPSB0eHQuc3BsaXQoIHNlcGFyYXRvciApLCAgICAgICAgICAgICBwb3NpdGlvbiAgICA9IC0xLCAgICAgICAgICAgICBtaWRQb3MgICAgICA9IC0xLCAgICAgICAgICAgICBzdGFydFBvcyAgICA9IDAsICAgICAgICAgICAgIGVuZFBvcyAgICAgID0gdGV4dEFyci5sZW5ndGggLSAxOyAgICAgICAgIGlmICggby5mYWxsYmFja1RvTGV0dGVyICYmIGVuZFBvcyA9PSAwICYmIGVuZFBvcyA9PSBzdGFydFBvcyApICAgICAgICAgeyAgICAgICAgICAgICBzZXBhcmF0b3IgICA9ICcnOyAgICAgICAgICAgICB0ZXh0QXJyICAgICA9IHR4dC5zcGxpdCggc2VwYXJhdG9yICk7ICAgICAgICAgICAgIGVuZFBvcyAgICAgID0gdGV4dEFyci5sZW5ndGggLSAxOyAgICAgICAgIH0gICAgICAgICB3aGlsZSAoIHN0YXJ0UG9zIDw9IGVuZFBvcyAmJiAhKCBzdGFydFBvcyA9PSAwICYmIGVuZFBvcyA9PSAwICkgKSAgICAgICAgIHsgICAgICAgICAgICAgdmFyIG0gPSBNYXRoLmZsb29yKCAoIHN0YXJ0UG9zICsgZW5kUG9zICkgLyAyICk7ICAgICAgICAgICAgIGlmICggbSA9PSBtaWRQb3MgKSAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgfSAgICAgICAgICAgICBtaWRQb3MgPSBtOyAgICAgICAgICAgICBzZXRUZXh0Q29udGVudCggZSwgdGV4dEFyci5zbGljZSggMCwgbWlkUG9zICsgMSApLmpvaW4oIHNlcGFyYXRvciApICsgby5lbGxpcHNpcyApOyAgICAgICAgICAgICBpZiAoICF0ZXN0KCAkaSwgbyApICkgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBtaWRQb3M7ICAgICAgICAgICAgICAgICBzdGFydFBvcyA9IG1pZFBvczsgICAgICAgICAgICAgfSAgICAgICAgICAgICBlbHNlICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgIGVuZFBvcyA9IG1pZFBvczsgICAgICAgICAgICAgfSAgICAgICAgIH0gICAgICAgICBpZiAoIHBvc2l0aW9uICE9IC0xICYmICEoIHRleHRBcnIubGVuZ3RoID09IDEgJiYgdGV4dEFyclsgMCBdLmxlbmd0aCA9PSAwICkgKSAgICAgICAgIHsgICAgICAgICAgICAgdHh0ID0gYWRkRWxsaXBzaXMoIHRleHRBcnIuc2xpY2UoIDAsIHBvc2l0aW9uICsgMSApLmpvaW4oIHNlcGFyYXRvciApLCBvICk7ICAgICAgICAgICAgIHNldFRleHRDb250ZW50KCBlLCB0eHQgKTsgICAgICAgICB9ICAgICAgICAgZWxzZSAgICAgICAgIHsgICAgICAgICAgICAgdmFyICR3ID0gJGUucGFyZW50KCk7ICAgICAgICAgICAgICRlLnJlbW92ZSgpOyAgICAgICAgICAgICB2YXIgYWZ0ZXJMZW5ndGggPSAoIGFmdGVyICYmIGFmdGVyLmNsb3Nlc3QoJHcpLmxlbmd0aCApID8gYWZ0ZXIubGVuZ3RoIDogMDsgICAgICAgICAgICAgaWYgKCAkdy5jb250ZW50cygpLmxlbmd0aCA+IGFmdGVyTGVuZ3RoICkgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgZSA9IGZpbmRMYXN0VGV4dE5vZGUoICR3LmNvbnRlbnRzKCkuZXEoIC0xIC0gYWZ0ZXJMZW5ndGggKSwgJGQgKTsgICAgICAgICAgICAgfSAgICAgICAgICAgICBlbHNlICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgIGUgPSBmaW5kTGFzdFRleHROb2RlKCAkdywgJGQsIHRydWUgKTsgICAgICAgICAgICAgICAgIGlmICggIWFmdGVyTGVuZ3RoICkgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAkdy5yZW1vdmUoKTsgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgfSAgICAgICAgICAgICBpZiAoIGUgKSAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICB0eHQgPSBhZGRFbGxpcHNpcyggZ2V0VGV4dENvbnRlbnQoIGUgKSwgbyApOyAgICAgICAgICAgICAgICAgc2V0VGV4dENvbnRlbnQoIGUsIHR4dCApOyAgICAgICAgICAgICAgICAgaWYgKCBhZnRlckxlbmd0aCAmJiBhZnRlciApICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgJChlKS5wYXJlbnQoKS5hcHBlbmQoIGFmdGVyICk7ICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgIH0gICAgICAgICB9ICAgICAgICAgcmV0dXJuIHRydWU7ICAgICB9ICAgICBmdW5jdGlvbiB0ZXN0KCAkaSwgbyApICAgICB7ICAgICAgICAgcmV0dXJuICRpLmlubmVySGVpZ2h0KCkgPiBvLm1heEhlaWdodDsgICAgIH0gICAgIGZ1bmN0aW9uIGFkZEVsbGlwc2lzKCB0eHQsIG8gKSAgICAgeyAgICAgICAgIHdoaWxlKCAkLmluQXJyYXkoIHR4dC5zbGljZSggLTEgKSwgby5sYXN0Q2hhcmFjdGVyLnJlbW92ZSApID4gLTEgKSAgICAgICAgIHsgICAgICAgICAgICAgdHh0ID0gdHh0LnNsaWNlKCAwLCAtMSApOyAgICAgICAgIH0gICAgICAgICBpZiAoICQuaW5BcnJheSggdHh0LnNsaWNlKCAtMSApLCBvLmxhc3RDaGFyYWN0ZXIubm9FbGxpcHNpcyApIDwgMCApICAgICAgICAgeyAgICAgICAgICAgICB0eHQgKz0gby5lbGxpcHNpczsgICAgICAgICB9ICAgICAgICAgcmV0dXJuIHR4dDsgICAgIH0gICAgIGZ1bmN0aW9uIGdldFNpemVzKCAkZCApICAgICB7ICAgICAgICAgcmV0dXJuIHsgICAgICAgICAgICAgJ3dpZHRoJyA6ICRkLmlubmVyV2lkdGgoKSwgICAgICAgICAgICAgJ2hlaWdodCc6ICRkLmlubmVySGVpZ2h0KCkgICAgICAgICB9OyAgICAgfSAgICAgZnVuY3Rpb24gc2V0VGV4dENvbnRlbnQoIGUsIGNvbnRlbnQgKSAgICAgeyAgICAgICAgIGlmICggZS5pbm5lclRleHQgKSAgICAgICAgIHsgICAgICAgICAgICAgZS5pbm5lclRleHQgPSBjb250ZW50OyAgICAgICAgIH0gICAgICAgICBlbHNlIGlmICggZS5ub2RlVmFsdWUgKSAgICAgICAgIHsgICAgICAgICAgICAgZS5ub2RlVmFsdWUgPSBjb250ZW50OyAgICAgICAgIH0gICAgICAgICBlbHNlIGlmIChlLnRleHRDb250ZW50KSAgICAgICAgIHsgICAgICAgICAgICAgZS50ZXh0Q29udGVudCA9IGNvbnRlbnQ7ICAgICAgICAgfSAgICAgfSAgICAgZnVuY3Rpb24gZ2V0VGV4dENvbnRlbnQoIGUgKSAgICAgeyAgICAgICAgIGlmICggZS5pbm5lclRleHQgKSAgICAgICAgIHsgICAgICAgICAgICAgcmV0dXJuIGUuaW5uZXJUZXh0OyAgICAgICAgIH0gICAgICAgICBlbHNlIGlmICggZS5ub2RlVmFsdWUgKSAgICAgICAgIHsgICAgICAgICAgICAgcmV0dXJuIGUubm9kZVZhbHVlOyAgICAgICAgIH0gICAgICAgICBlbHNlIGlmICggZS50ZXh0Q29udGVudCApICAgICAgICAgeyAgICAgICAgICAgICByZXR1cm4gZS50ZXh0Q29udGVudDsgICAgICAgICB9ICAgICAgICAgZWxzZSAgICAgICAgIHsgICAgICAgICAgICAgcmV0dXJuICIiOyAgICAgICAgIH0gICAgIH0gICAgIGZ1bmN0aW9uIGdldFByZXZOb2RlKCBuICkgICAgIHsgICAgICAgICBkbyAgICAgICAgIHsgICAgICAgICAgICAgbiA9IG4ucHJldmlvdXNTaWJsaW5nOyAgICAgICAgIH0gICAgICAgICB3aGlsZSAoIG4gJiYgbi5ub2RlVHlwZSAhPT0gMSAmJiBuLm5vZGVUeXBlICE9PSAzICk7ICAgICAgICAgcmV0dXJuIG47ICAgICB9ICAgICBmdW5jdGlvbiBmaW5kTGFzdFRleHROb2RlKCAkZWwsICR0b3AsIGV4Y2x1ZGVDdXJyZW50ICkgICAgIHsgICAgICAgICB2YXIgZSA9ICRlbCAmJiAkZWxbIDAgXSwgcDsgICAgICAgICBpZiAoIGUgKSAgICAgICAgIHsgICAgICAgICAgICAgaWYgKCAhZXhjbHVkZUN1cnJlbnQgKSAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICBpZiAoIGUubm9kZVR5cGUgPT09IDMgKSAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlOyAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgaWYgKCAkLnRyaW0oICRlbC50ZXh0KCkgKSApICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbmRMYXN0VGV4dE5vZGUoICRlbC5jb250ZW50cygpLmxhc3QoKSwgJHRvcCApOyAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICB9ICAgICAgICAgICAgIHAgPSBnZXRQcmV2Tm9kZSggZSApOyAgICAgICAgICAgICB3aGlsZSAoICFwICkgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgJGVsID0gJGVsLnBhcmVudCgpOyAgICAgICAgICAgICAgICAgaWYgKCAkZWwuaXMoICR0b3AgKSB8fCAhJGVsLmxlbmd0aCApICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgcCA9IGdldFByZXZOb2RlKCAkZWxbMF0gKTsgICAgICAgICAgICAgfSAgICAgICAgICAgICBpZiAoIHAgKSAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICByZXR1cm4gZmluZExhc3RUZXh0Tm9kZSggJChwKSwgJHRvcCApOyAgICAgICAgICAgICB9ICAgICAgICAgfSAgICAgICAgIHJldHVybiBmYWxzZTsgICAgIH0gICAgIGZ1bmN0aW9uIGdldEVsZW1lbnQoIGUsICRpICkgICAgIHsgICAgICAgICBpZiAoICFlICkgICAgICAgICB7ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgICAgICAgICB9ICAgICAgICAgaWYgKCB0eXBlb2YgZSA9PT0gJ3N0cmluZycgKSAgICAgICAgIHsgICAgICAgICAgICAgZSA9ICQoZSwgJGkpOyAgICAgICAgICAgICByZXR1cm4gKCBlLmxlbmd0aCApICAgICAgICAgICAgICAgICA\/IGUgICAgICAgICAgICAgICAgIDogZmFsc2U7ICAgICAgICAgfSAgICAgICAgIHJldHVybiAhZS5qcXVlcnkgICAgICAgICAgICAgPyBmYWxzZSAgICAgICAgICAgICA6IGU7ICAgICB9ICAgICBmdW5jdGlvbiBnZXRUcnVlSW5uZXJIZWlnaHQoICRlbCApICAgICB7ICAgICAgICAgdmFyIGggPSAkZWwuaW5uZXJIZWlnaHQoKSwgICAgICAgICAgICAgYSA9IFsgJ3BhZGRpbmdUb3AnLCAncGFkZGluZ0JvdHRvbScgXTsgICAgICAgICBmb3IgKCB2YXIgeiA9IDAsIGwgPSBhLmxlbmd0aDsgeiA8IGw7IHorKyApICAgICAgICAgeyAgICAgICAgICAgICB2YXIgbSA9IHBhcnNlSW50KCAkZWwuY3NzKCBhWyB6IF0gKSwgMTAgKTsgICAgICAgICAgICAgaWYgKCBpc05hTiggbSApICkgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgbSA9IDA7ICAgICAgICAgICAgIH0gICAgICAgICAgICAgaCAtPSBtOyAgICAgICAgIH0gICAgICAgICByZXR1cm4gaDsgICAgIH0gICAgIGZ1bmN0aW9uIGRlYnVnKCBkLCBtICkgICAgIHsgICAgICAgICBpZiAoICFkICkgICAgICAgICB7ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgICAgICAgICB9ICAgICAgICAgaWYgKCB0eXBlb2YgbSA9PSAnc3RyaW5nJyApICAgICAgICAgeyAgICAgICAgICAgICBtID0gJ2RvdGRvdGRvdDogJyArIG07ICAgICAgICAgfSAgICAgICAgIGVsc2UgICAgICAgICB7ICAgICAgICAgICAgIG0gPSBbICdkb3Rkb3Rkb3Q6JywgbSBdOyAgICAgICAgIH0gICAgICAgICBpZiAoIHR5cGVvZiB3aW5kb3cuY29uc29sZSAhPSAndW5kZWZpbmVkJyApICAgICAgICAgeyAgICAgICAgICAgICBpZiAoIHR5cGVvZiB3aW5kb3cuY29uc29sZS5sb2cgIT0gJ3VuZGVmaW5lZCcgKSAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICB3aW5kb3cuY29uc29sZS5sb2coIG0gKTsgICAgICAgICAgICAgfSAgICAgICAgIH0gICAgICAgICByZXR1cm4gZmFsc2U7ICAgICB9ICAgICB2YXIgX29yZ0h0bWwgPSAkLmZuLmh0bWw7ICAgICAkLmZuLmh0bWwgPSBmdW5jdGlvbiggc3RyICkgICAgIHsgICAgICAgICBpZiAoIHN0ciAhPSB1bmRlZiAmJiAhJC5pc0Z1bmN0aW9uKCBzdHIgKSAmJiB0aGlzLmRhdGEoICdkb3Rkb3Rkb3QnICkgKSAgICAgICAgIHsgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJpZ2dlciggJ3VwZGF0ZScsIFsgc3RyIF0gKTsgICAgICAgICB9ICAgICAgICAgcmV0dXJuIF9vcmdIdG1sLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsgICAgIH07ICAgICB2YXIgX29yZ1RleHQgPSAkLmZuLnRleHQ7ICAgICAkLmZuLnRleHQgPSBmdW5jdGlvbiggc3RyICkgICAgIHsgICAgICAgICBpZiAoIHN0ciAhPSB1bmRlZiAmJiAhJC5pc0Z1bmN0aW9uKCBzdHIgKSAmJiB0aGlzLmRhdGEoICdkb3Rkb3Rkb3QnICkgKSAgICAgICAgIHsgICAgICAgICAgICAgc3RyID0gJCggJzxkaXYgLz4nICkudGV4dCggc3RyICkuaHRtbCgpOyAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmlnZ2VyKCAndXBkYXRlJywgWyBzdHIgXSApOyAgICAgICAgIH0gICAgICAgICByZXR1cm4gX29yZ1RleHQuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOyAgICAgfTsgfSkoIGpRdWVyeSApOyAoZnVuY3Rpb24oJCkgeyAgICAgaWYoICQuZm4uZG90ZG90ZG90X2Ftem4gKSByZXR1cm47ICAgICAkLmZuLmRvdGRvdGRvdF9hbXpuID0gZnVuY3Rpb24oKSB7ICAgICAgICAgaWYoIHRoaXMubGVuZ3RoID4gMSApIHsgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7ICAgICAgICAgICAgICAgICAkKHRoaXMpLmRvdGRvdGRvdF9hbXpuKCk7ICAgICAgICAgICAgIH0pOyAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5sZW5ndGggPT0gMCApIHsgICAgICAgICAgICAgcmV0dXJuOyAgICAgICAgIH0gICAgICAgICB2YXIgZWwgPSB0aGlzOyAgICAgICAgIGlmKGVsLmhhc0NsYXNzKCd0cnVuY2F0ZWQnKSkgcmV0dXJuOyAgICAgICAgIHZhciBvcmlnaW5hbENvbnRlbnQgPSBlbC5jbG9uZSh0cnVlKTsgICAgICAgICBlbC5kb3Rkb3Rkb3QoeyAgICAgICAgICAgICBoZWlnaHQ6IHBhcnNlSW50KGVsLmRhdGEoJ3Nob3J0ZW4nKSksICAgICAgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbiggaXNUcnVuY2F0ZWQsIG9yZ0NvbnRlbnQgKSB7ICAgICAgICAgICAgICAgICBpZighaXNUcnVuY2F0ZWQpIHJldHVybjsgICAgICAgICAgICAgICAgIGVsLmFkZENsYXNzKCd0cnVuY2F0ZWQnKTsgICAgICAgICAgICAgICAgIGlmKCFlbC5kYXRhKCd0cmFuc2l0aW9uc2VsZWN0b3InKSAgICAgICAgICAgICAgICAgICAgICYmICFlbFswXS5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2hvcnRlbi1rZWVwLW9yaWdpbmFsJykpIHJldHVybjsgICAgICAgICAgICAgICAgIG9yaWdpbmFsQ29udGVudC5hZGRDbGFzcygnb3JpZ2luYWwnKTsgICAgICAgICAgICAgICAgIG9yaWdpbmFsQ29udGVudC5hZGRDbGFzcygnY29sbGFwc2VkJyk7ICAgICAgICAgICAgICAgICBkZWxldGUgb3JpZ2luYWxDb250ZW50WzBdLmRhdGFzZXQuc2hvcnRlbjsgICAgICAgICAgICAgICAgIGlmKG9yaWdpbmFsQ29udGVudC5pZCkgeyAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsQ29udGVudC5pZCArPSAiLW9yaWdpbmFsIjsgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgIGVsLnBhcmVudCgpLmFwcGVuZChvcmlnaW5hbENvbnRlbnQpOyAgICAgICAgICAgICB9LCAgICAgICAgICAgICB3YXRjaDp0cnVlLCAgICAgICAgICAgICBkZWJ1ZzpmYWxzZSAgICAgICAgIH0pOyAgICAgfSB9KSggalF1ZXJ5ICk7IGpRdWVyeSh3aW5kb3cpLmxvYWQoZnVuY3Rpb24oKSB7ICAgICBqUXVlcnkoIltkYXRhLXNob3J0ZW5dIikuZG90ZG90ZG90X2Ftem4oKTsgfSk7ICAgICAgICAgdXBkYXRlVUkoKTsgICAgICAgICBBLm9uLnJlc2l6ZShmdW5jdGlvbigpeyAgICAgICAgICAgICB1cGRhdGVVSSgpOyAgICAgICAgIH0pOyAgICAgICAgIEEub24ub3JpZW50YXRpb25jaGFuZ2UoZnVuY3Rpb24oKXsgICAgICAgICAgICAgdXBkYXRlVUkoKTsgICAgICAgICB9KTsgICAgICAgICB2YXIgd2lkdGhDdXRvZmYgPSAwOyAgICAgICAgIHZhciBiYWRnZSA9IEEuJCgiLnNwX0IwN0g1NTdUUFFfcHJpbWVfd2FyZHJvYmVfYmFkZ2UiKTsgICAgICAgICBmdW5jdGlvbiB1cGRhdGVVSSgpIHsgICAgICAgICAgICAgaWYgKGJhZGdlKSB7ICAgICAgICAgICAgICAgICBpZiAoQS4kKCIjc3BfaHFwX3Bob25lX3NoYXJlZF90aGlyZFJvdyIpLmhlaWdodCgpID4gNDUpIHsgICAgICAgICAgICAgICAgICAgICBiYWRnZS5oaWRlKCk7ICAgICAgICAgICAgICAgICAgICAgd2lkdGhDdXRvZmYgPSBBLiQoIiNzcF9ocXBfcGhvbmVfc2hhcmVkIikud2lkdGgoKSArIDU7ICAgICAgICAgICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgIGlmIChBLiQoIiNzcF9ocXBfcGhvbmVfc2hhcmVkIikud2lkdGgoKSA+IHdpZHRoQ3V0b2ZmKSB7ICAgICAgICAgICAgICAgICAgICAgICAgIGJhZGdlLnNob3coKTsgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgIH0gICAgICAgICB9ICAgICAgICAgQS4kKCIjc3BfaHFwX3Bob25lX3NoYXJlZF9kaXNwbGF5X3RpdGxlIikuZG90ZG90ZG90KHsgICAgICAgICAgICAgaGVpZ2h0OiAzNiwgICAgICAgICAgICAgd2F0Y2g6ICJ3aW5kb3ciICAgICAgICAgfSk7ICAgICAgICAgQS4kKCIuc3BfaHFwX3Bob25lX3NoYXJlZF9yZXNwb25zaXZlX2JveCIpLmNzcygibWFyZ2luLWxlZnQiLCAiMHB4Iik7ICAgICB9KTsgfSkpOzwvc2NyaXB0PjwvZGl2Pg==\",\"serverSideFetchAd\": \"true\",\"enableAdBlockerDetector\": false,\"disableResizeFunc\": true,\"minWidthToScale\": \"\",\"fallbackStaticAdImgUrl\": \"\",\"fallbackStaticAdClickUrl\": \"\",\"fallbackStaticAdExtraStyle\": \"\",\"advertisementTextOnTop\": false,\"viewabilityStandards\": [{\"p\": 0, \"t\": 0, \"def\": \"amzn\"}, {\"p\": 50, \"t\": 1, \"def\": \"iab\"}, {\"p\": 100, \"t\": 1, \"def\": \"groupm\"}],\"ajaxWeblabTriggerId\": \"\",\"expParams\":{\"enableMobileFeedback\":\"true\"},\"mediaType\": \"D\",\"allowlistedCustomMessageEvents\": [\"openPsAdPopover\", \"openATCModal\", \"setPartner\", \"sendMetrics\", \"wrap\"],\"MAsfUrl\":\"https:\/\/images-na.ssl-images-amazon.com\/images\/S\/apesafeframe\/ape\/sf\/mobile\/MAsf-1.50.0d6684f.js\"}' title=\"Patrocinado\" data-arid=\"95c4c2dae5bd4d3e9036fdae6be8acb5\" data-csa-c-id=\"kuka9v-po3sof-nuawuy-gptzhq\" data-cel-widget=\"adplacements:detail:mobile-hero-quick-promo:mweb\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"Revlon","offers":[{"title":"Default Title","offer_id":39673802260559,"sku":"RV474N13","price":990.0,"currency_code":"HNL","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0290\/2641\/8767\/products\/image_bab47579-affb-40c5-a06b-5b24ccf16324.jpg?v=1636418351","url":"https:\/\/beautyfacehn.com\/products\/secadora-de-cabello","provider":"Beauty Face Honduras","version":"1.0","type":"link"}